我正在使用matplotlib来绘制图表和图形。
当我使用show()
命令绘制图表时,我的代码在此命令处阻塞。
我想用新数据刷新我的值列表,然后在背景上刷新图像。如何做到这一点,而不是每次关闭带有图形的窗口?下面是我使用的代码
import pylab
a = (1,2,3,4)
pylab.plot(a)
pylab.show() # blocks here
发布于 2010-02-23 00:08:10
在使用-pylab
启动的IPython中,它应该不会阻塞。
否则:使用ion()
打开交互模式。show()
不再阻止您的系统。每个draw()
或plot(x, y)
都会更新您的绘图。
ioff()
关闭交互模式。如果您添加了大量数据,并且不想更新每一个小细节,则此方法非常有用。
发布于 2010-02-22 22:05:39
如果您使用的不是IPython外壳,而是运行一个程序,则可能需要执行以下操作:
pyplot.draw()
在plot()
之后,可能会紧跟
raw_input("Press enter when done...")
以便在绘制其他内容之前等待用户。
如果您在程序开始时执行pyplot.ion()
,则通常可以跳过执行draw()
。
pyplot.show()
实际上是一个无限循环,它处理主绘图窗口中的事件(如缩放、平移等)。
发布于 2016-04-29 03:27:47
在MacOS X上,我遇到了一个问题,解锁只会产生一个白屏。最后,@tyleha的建议直接在笔记本中使用%pylab很有帮助。实际上,在使用已弃用的-pylab标志时,建议您这样做:
bash:~/Projects/plyground $ python -m IPython notebook -pylab
WARNING: `-pylab` flag has been deprecated.
Use `--matplotlib <backend>` and import pylab manually.
[E 21:09:05.446 NotebookApp] Support for specifying --pylab on the command line has been removed.
[E 21:09:05.447 NotebookApp] Please use `%pylab` or `%matplotlib` in the notebook itself.
https://stackoverflow.com/questions/2310851
复制相似问题