pylab matplotlib中的"show"命令会等待窗口关闭

17

我想让matplotlib的"show"命令在显示图表的同时返回到命令行。像R这样的大多数其他绘图软件都能做到这一点,但pylab会一直等待直到图表窗口关闭。例如:

import pylab
x = pylab.arange( 0, 10, 0.1)
y = pylab.sin(x)
pylab.plot(x,y, 'ro-')
pylab.show()   #  Python hangs here until the plot window is closed

我希望能够在执行命令行查询时查看图形。 我正在运行带有 Python 2.6.6 的 Debian Squeeze。 我的 ~/.matplotlib/matplotlibrc 包含:

backend      : GTKAgg

谢谢!


2
尝试使用IPython - David Z
你需要使用 ipython -pylab 来实现多线程。 - Andre Holzner
2个回答

26
在调用pylab.show()之前添加pylab.ion() (交互模式)。这将使UI在单独的线程中运行,并且对show的调用将立即返回。

1
谢谢。运行良好。使用 ion() 后,show() 命令不再需要。 - Sullivan
2
它确实会立即返回,但为什么数字会挂在那里显示“未响应”? - Sibbs Gambling

5

您需要以以下方式运行它

$ ipython --pylab 

并运行您的代码

In [8]: x = arange(0,10,.1)

In [9]: y = sin(x)

In [10]: plot(x,y,'ro-')

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>]

In [11]: 

这将为您提供提示,以便在需要修改其他部分或绘制更多内容的情况下使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接