【发布时间】:2014-02-06 22:34:32
【问题描述】:
我在循环的每次迭代中更新一个 3d 散点图。重新绘制绘图时,网格线“穿过”或“覆盖”这些点,这使我的数据更难以可视化。如果我构建一个 3d 图(没有循环更新),这不会发生。下面的代码演示了最简单的情况:
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import time
X = np.random.rand(100, 3)*10
Y = np.random.rand(100, 3)*5
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
plt.draw()
for i in range(0, 20):
time.sleep(3) #make changes more apparent/easy to see
Y = np.random.rand(100, 3)*5
ax.cla()
ax.scatter(Y[:, 0], Y[:, 1], Y[:, 2])
plt.draw()
还有其他人遇到过这个问题吗?
【问题讨论】:
-
我没有得到 pb 是什么,你能澄清一下吗?你想做什么?
-
如果您在循环中更新 matplotlib3d 轴,例如当使用 Funcanimation 时,通常位于背景中的网格会覆盖绘制的表面。我更新了问题。
-
但编辑需要经过同行评审
标签: python loops matplotlib scatter