如何在不删除以前数据的情况下在Matplotlib Axes3D散点上绘制多个数据集?

时间:2014-11-08 19:56:23

标签: python for-loop matplotlib plot 3d

我有一个for循环,如下所示:

for index, t in enumerate(Coords_at_different_energies):

    fig0 = pylab.figure(0)

    ax0 = Axes3D(fig0)

    arr_t = np.array(t)

    ax0.scatter(arr_t[:,0], arr_t[:,1], arr_t[:,2], color = colors[index])

pyplot.show()

其中Coords_at_different_energies是坐标列表和颜色列表是一个颜色列表。

当我运行它时,只有最后一个要绘制的数据集似乎仍然存在,即我认为循环会在每次迭代时覆盖先前的数据集。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用figure创建一个新的数字,删除已存在的任何内容。同样,使用Axes3D(fig0)创建一个新轴,删除旧轴。将图形和轴创建移动到循环外部,仅执行循​​环内的实际绘图。