2009-11-05 91 views
8

我們可以控制Matplotlib在屏幕上的位置嗎?使用Matplotlib的多個圖形排列

我想生成四個數字(在四個獨立的窗口),不重疊。

+0

多一點信息會有幫助。什麼OS?我認爲在一個圖上有四個軸是不夠的。但爲什麼?什麼使四個獨立的窗口更可取?你需要這些情節是互動/動畫嗎? – Paul 2009-11-05 02:41:19

回答

0

單獨使用show()和Matplotlib。最簡單的解決方案可能是使用savefig(..)並使用您最喜歡的操作系統映像查看器。如果您需要與地塊互動,Matplotlib提供backends

0

我所知道的最簡單的方法是在首選的GUI應用程序中爲圖形創建窗口,然後將matplotlib圖放入此窗口。有很多關於如何使用不同的GUI框架嵌入的例子here

代碼示例看起來有點複雜,但它主要是樣板,您只需要修改幾行代碼即可。

8

IPython你可以做到以下幾點:

figure() 
get_current_fig_manager().window.wm_geometry("400x600+20+40") 

或等價的Python腳本:

import pylab as pl 
pl.figure() 
pl.get_current_fig_manager().window.wm_geometry("400x600+20+40") 
pl.show() 

注意,這裏假設你正在使用的TkAgg後端。

+0

這正是我所需要的。謝謝。我在腳本前面添加了以下兩行代碼,以使其在Mac中工作:>>> import matplotlib; >>> matplotlib.use('TkAgg') – David 2009-11-06 17:46:04

+0

+1:很瞭解(並且比我的建議更好)。 – tom10 2009-11-07 02:03:49

+2

如果這是您的正確答案,請將其標記爲已接受。 – 2009-11-14 16:51:30

3

也可以使用IPython的接口與Qt的後端,實現了類似的結果:

import matplotlib 
import pylab as pl 
f1 = pl.figure() 
f_manager = pl.get_current_fig_manager() 
f_manager.window.move(600, 600) 
pl.show() 

隨着f_manager你基本上有一個PyQt4的對象,允許你爲你喜歡修改窗口屬性。