matplotlib cla() 问题

发布于 2024-12-05 12:46:21 字数 528 浏览 0 评论 0原文

我正在尝试使用 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)。

i am trying to make some animation using 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)
...

at first i didn't use cla(), so on every iteration i got the same picture (http://dl.dropbox.com/u/4988243/out_0.png). when i added ax.cla() it was ok with animation but i got some unwanted axes which i don't know how to get rid of (http://dl.dropbox.com/u/4988243/out_1.png).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

总以为 2024-12-12 12:46:21

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

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' )

I'm running the latest version of Matplotlib from github on ubuntu 11.04. I wrote a code snippet where I create a new axis instance each time, and this seems to produce the plots that you want with axis intact. The problem you're seeing might just be a bug, but I think this works around it. I made plots of random numbers, just for demonstration purposes.

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' )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文