2011-05-16 74 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