2011-06-15 37 views
2

當我在一個交互式的Python會話(通常IPython的),下面的命令:互動matplotlib

from matplotlib import pyplot as plt 
plt.plot([1,2,3,4]) 

不會自動提升一個窗口,顯示的情節。我可以使matplotlib實際上提高窗口的唯一方法是使用show(),它還捕獲所有輸入,直到我關閉破壞圖的窗口。現在我必須在我看到任何結果之前給我所有的情節命令,這是一個重大的麻煩。在OSX上,我沒有這個問題。

我正在使用的後端是TkAgg。使用draw()ion()調用不起作用。

+0

一旦你顯示它,你想要怎麼做你的陰謀?你在osx上描述的行爲很奇怪:如果你只想以jpeg的形式保存劇情呢?你打電話時是否也打開窗戶? – Simon 2011-06-15 09:53:40

+0

隨着MacOSX作爲後端,它始終顯示劇情,即使使用'交互式(假)'。當我在OSX上使用TkAgg作爲後端時,它的行爲正常。也許是一個錯誤? – 2011-06-15 14:48:57

回答

3

如果您使用IPython的pylab模式,這個工程:

In [1]: plot([1,2,3,4]) 
Out[1]: [<matplotlib.lines.Line2D object at 0x020F75B0>] 

有沒有需要顯示(),也不matplotlib進口。

在IPython正常模式下,您可以使會話交互。這也適用:

In [4]: from matplotlib import interactive 

In [5]: interactive(True) 

In [6]: from matplotlib import pyplot as plt 

In [7]: plt.plot([1,2,3,4]) 
Out[7]: [<matplotlib.lines.Line2D object at 0x00F89D50>]