2013-08-01 51 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