0

我试图在循环中生成一个图,每次迭代都会更新自己。在使用 python 2.6.6 的 linux 环境中工作我可以正常工作,但是当我在 Windows XP 中使用 python 2.7.3 运行相同的代码时,它会失败。为我产生此错误的最少代码是:

import matplotlib.pyplot as plt

plt.ion()
plt.figure(1)

for i in range(10):
   plt.clf()
   plt.plot(i,i**2,'bo')
   plt.axis([-1,10, -1, 90])
   plt.draw()

在 linux 中,我看到一个沿着抛物线移动的蓝点。在 MSwindows 中,我首先得到一个空窗口,然后出现一个点在 (9,81) 的图。这看起来很简单,但也许我错过了一些小东西。有什么建议么?

4

1 回答 1

1

我在这里找到了答案:https ://stackoverflow.com/a/13601492/1738884

事实证明,在 Windows 中,我所需要的只是在plt.pause(.01)之后添加一个,plt.draw()并且我的情节根据需要更新了每次迭代。所以简化的工作代码如下所示:

import matplotlib.pyplot as plt

plt.ion()
plt.figure(1)

for i in range(10):
    plt.clf()
    plt.plot(i,i**2,'bo')
    plt.axis([-1,10, -1, 90])
    plt.draw()
    plt.pause(.01)
于 2012-11-28T17:25:52.727 回答