2012-10-27 34 views
1

的佈局我剛剛看了一個介紹subplot2gridhttp://matplotlib.org/users/gridspec.html關於處理子圖

我不明白爲什麼它是使用像

fig = plt.figure() 
plt.subplot2grid((2,2),(0, 0)) 

而不是

fig = plt.figure() 
fig.subplot2grid((2,2),(0, 0)) 

通過plt.subplot2grid(...),如果我已經創建了多個數字,那麼這個副劇的數字呢?

回答

1

plt.*功能作用於當前圖。要獲得目前的數字,你可以做

fig = plt.gcf() 

所以,在你的第二個情況下,你可以這樣做:

# Add subplots to the current figure 
plt.subplot2grid((2, 2), (0, 0)) 

# Get the current figure. This will hold the subplots created in the previous command 
fig = plt.gcf() 

希望這有助於。

+0

因此,如果我想要在某個特定的人物上進行此操作,我需要先將其設置爲當前人物?確切地說,是 – updogliu

+0

。爲了跟蹤你的數字,你可以給它們指定如下的數字:'fig1 = plt.figure(1)'或'fig2 = plt.figure(2)'。然後,您可以將當前的數字切換回'fig1':'plt.figure(1)'。希望有所幫助。 – dmcdougall

+0

[This](http://stackoverflow.com/questions/7986567/matplotlib-how-to-set-the-current-figure)更好地解釋它。 – dmcdougall

1

有兩種模式與matplotlib交互時,state machine interface(PLT。*)和OOP模型(作用於figureaxes等)。狀態機接口模仿matlab,對於快速交互式會話非常有用,但是如果您要做任何問題,使用OOP接口會更好。混合兩者可以導致to problems

+2

由於'Figure'沒有'subplot2grid'屬性,所以你完全不清楚如何在OOP模型中使用'subplot2grid'。因此,這個答案根本沒有幫助。 – ImportanceOfBeingErnest

+2

確實。我正在尋找subplot2grid的OOP版本。有人知道嗎?我發現http://stackoverflow.com/questions/28256144/matplotlib-what-is-the-oop-equivalent-of-gridspec-or-plt-subplot2grid,但它也沒有調用無花果方法。 –