首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在不阻塞执行的情况下绘制直线

在不阻塞执行的情况下绘制直线
EN

Stack Overflow用户
提问于 2010-02-22 20:40:57
回答 4查看 13.2K关注 0票数 17

我正在使用matplotlib来绘制图表和图形。

当我使用show()命令绘制图表时,我的代码在此命令处阻塞。

我想用新数据刷新我的值列表,然后在背景上刷新图像。如何做到这一点,而不是每次关闭带有图形的窗口?下面是我使用的代码

代码语言:javascript
复制
import pylab
a = (1,2,3,4)
pylab.plot(a)
pylab.show() # blocks here
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-23 00:08:10

在使用-pylab启动的IPython中,它应该不会阻塞。

否则:使用ion()打开交互模式。show()不再阻止您的系统。每个draw()plot(x, y)都会更新您的绘图。

ioff()关闭交互模式。如果您添加了大量数据,并且不想更新每一个小细节,则此方法非常有用。

另请参阅:http://www.scipy.org/Cookbook/Matplotlib/Animations

票数 12
EN

Stack Overflow用户

发布于 2010-02-22 22:05:39

如果您使用的不是IPython外壳,而是运行一个程序,则可能需要执行以下操作:

代码语言:javascript
复制
pyplot.draw()

plot()之后,可能会紧跟

代码语言:javascript
复制
raw_input("Press enter when done...")

以便在绘制其他内容之前等待用户。

如果您在程序开始时执行pyplot.ion(),则通常可以跳过执行draw()

pyplot.show()实际上是一个无限循环,它处理主绘图窗口中的事件(如缩放、平移等)。

票数 3
EN

Stack Overflow用户

发布于 2016-04-29 03:27:47

在MacOS X上,我遇到了一个问题,解锁只会产生一个白屏。最后,@tyleha的建议直接在笔记本中使用%pylab很有帮助。实际上,在使用已弃用的-pylab标志时,建议您这样做:

代码语言:javascript
复制
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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2310851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档