2013-08-01 92 views
3

我想將我的數據保存到磁盤上,而不必在屏幕上顯示它們,也不必更改渲染後端。用matplotlib直接保存到磁盤

我試圖說明在here,即避免調用fig.show()也不fig.draw(),只是調用fig.savefig,但我注意到,僅僅聲明fig = plt.figure()已經打開屏幕上的人物。

如何將圖保存到磁盤而不必渲染它,而不必更改後端?

+2

'plt.ioff()'你爲什麼不只是使用非交互式的後端?幾乎所有的'plt。*'命令都有一個隱含的'plt.draw()',因此你可以調用它。 – tacaswell

+0

感謝@tcaswell我意識到我的代碼上有一個'ion()'。如果你寫這個答案,我會接受它。 –

回答

3

pyplot具有互動功能,在大多數plt.*需要您後會自動撥打電話draw()

draw如果經過狀態機的接口不自動調用(如gca().plot(...)不會自動重新繪製,但plt.plot(...)會)。

請參閱codedraw_if_interactive中的重要功能。

這可以通過plt.ioff()或通過不打電話plt.ion()ipython --pylab自動爲您打開)關閉。

doc

+0

至少在最近的一些Matplotlib版本中,在交互模式下,「draw()'在每次調用後自動調用」並不是真的,因此應該在一定程度上採用這種方法。在我的一個StackOverflow問題中有[有趣的點](http://stackoverflow.com/questions/6130341/exact-semantics-of-matplotlibs-interactive-mode-ion-ioff)。 – EOL

+0

@EOL請參閱編輯。 – tacaswell

+0

新版本看起來不錯。 :) – EOL