我写了一个程序:
import pylab as pl
import numpy as np
from random import random
pl.figure()
r = np.array([ random() - 0.5 for xx in range(1000) ])
for i in range(20):
print i
pl.clf()
pl.hist(r, 50)
pl.savefig( 'abc%04d.png'%i )
r += np.array([ random() - 0.5 for xx in range(1000) ])
pl.show()
我在iPython中运行的效果很好。但是,如果我做了
C:\> python test.py
在命令提示符下,我每次都要关闭数字以获得输出。谁知道如何解决这个问题?最终我想编写一个批处理文件,有人可以双击以运行该文件。
答案 0 :(得分:2)
IPython内核具有用于处理交互式图形的特定钩子,标准Python解释器不具备这种钩子。这在this page,
上有更详细的解释(有几个解决方法)答案 1 :(得分:2)
正如@monkut所说,你应该删除p1.show()
。
代码中的show()命令会停止,直到图形关闭。这将在这里讨论:
http://matplotlib.org/faq/howto_faq.html#use-show
这取决于脚本是以非交互模式(默认)还是以交互模式运行。在交互模式下,它会立即显示所有数字。也不是很有用!
所以你需要添加一些刷新绘图的事件(键盘或计时器)。上面的页面显示了许多变体。