matplotlib cla()问题

时间:2011-09-20 13:43:58

标签: python matplotlib

我正在尝试使用matplotlib制作一些动画。

fig = plt.figure()
ax = fig.gca(projection='3d')
...


for k in xrange(10):
...
    ax.cla()
    ax.plot_surface(X, Y, field.real, rstride=2, cstride=2, cmap=cm.hot,
        linewidth=0, antialiased=False)
    ax.set_zlim3d(-50, 150)
    filename = "out_%d.png" % k
    fig.savefig(filename)
...

起初我没有使用cla(),因此在每次迭代时我都得到了相同的图片(http://dl.dropbox.com/u/4988243/out_0.png)。当我添加ax.cla()它没有动画但我有一些不需要的轴,我不知道如何摆脱(http://dl.dropbox.com/u/4988243/out_1.png)。

1 个答案:

答案 0 :(得分:0)

我在ubuntu 11.04上从github运行最新版本的Matplotlib。我写了一个代码片段,每次我创建一个新的轴实例,这似乎产生了你想要的轴完整的图。你看到的问题可能只是一个bug,但我认为这可以解决它。我制作了随机数字图,仅用于演示目的。

import numpy
from matplotlib import pyplot

X = numpy.arange(250)
Y = numpy.arange(250)
X, Y = numpy.meshgrid(X, Y)

fig = pyplot.figure()

for ind in range(10):
    Z = numpy.random.random( (250,250) )

    ax = fig.add_subplot(111,projection='3d')
    ax.plot_surface(X, Y, Z, cmap='hot', linewidth=0, cstride = 2, rstride = 2, antialiased=False)
    ax.set_zlim3d(0, 1)
    pyplot.savefig('example' + str(ind) + '.png' )