2011-05-16 69 views
2

我现在有一个主脚本,调用一个函数。部分功能功能是绘制两张图。该脚本工作,如果我有show()在最后,但它是一个有点讨厌,要么该脚本将暂停,直到我关闭图形或我必须等待看看图表,直到程序结束。因此,我觉得我需要使用ion()/ioff()。如果我从shell调用函数,下面的代码片段工作,但如果我从脚本调用它,则不会。如何绘制从函数调用的matplotlib?

#Plot the graphs. 
ion() 
firstplot = plot(GridAround[Mode], LogTheory[Mode], '.') 
secondplot = plot(GridAround[Mode], NormalApprox[Mode]) 
draw() 
ioff() 

我的问题很简单:如何从一个函数中绘制,而无需使用show()(这将暂停脚本或只显示在最后的图)?

我提前道歉,这个问题想必一定有某个地方在网络上的答案,但一对夫妇的搜索了几个小时之后,我一直没能找到它。

+1

事实证明,一个解决方案,使得它的工作对我来说是: fig = figure() plot(blah) fig.show() 这不会停止代码的执行,并允许显示图形。然而,figure.show()的文档就我所知可能几乎不存在而言。 – Har 2011-05-17 12:06:13

回答

1

您可以使用不同的渲染backend,但是,你需要将剧情与savefig保存为一个文件,而不是使用show

import matplotlib 
matplotlib.use('Agg') 
+0

保存的图像是一个解决方案,但不是非常好,我的目的。 但是,figure.show()似乎在做我想做的事情。 – Har 2011-05-17 12:08:46

+0

@Har:我很高兴你理解了它,我想我误解你问什么。 – GWW 2011-05-17 13:55:34