2013-05-03 73 views
2

我有以下代碼可以生成8個繪圖。我想把各個階段作爲標題放在每個情節中。所以我已經成功地把這個階段放在情節上。但不是採取相應的階段,它總是在最後階段顯示在每個情節。該8phases.txt文件有以下8條線,我希望把每一個情節 -Matplotlib:使用循環繪製的8個繪圖的相同標題

-1 1 -1  
-1 1 1 
1 1 1 
1 -1 1 
-1 -1 -1 
1 1 -1 
1 -1 -1 
-1 -1 1 

這裏是代碼 -

import numpy as np 
import matplotlib.pyplot as plt 

D=12 
n=np.arange(1,4) 
x = np.linspace(-D/2,D/2, 3000) 
I = np.array([125,300,75]) 
phase = np.genfromtxt('8phases.txt') 
I_phase = I*phase 

for i in I_phase: 
    F = sum(m*np.cos(2*np.pi*l*x/D) for m,l in zip(i,n)) 
    f,(ax1,ax2) = plt.subplots(2) 
    for row in phase: 
     ax1.plot(x,F,'g') 
     ax1.set_title(row) 

plt.show() 
+1

我相信你不正確地使用'plt.subplots',雖然我對此沒有太多經驗。希望有經驗的人能夠指出這個問題。 – mgilson 2013-05-03 13:59:08

回答

2

我覺得你內心最環路是不必要的;它重新創建8次相同的繪圖並用8個值中的每一個更新標題8次。

如果我明白你問什麼,我相信這給正確的結果:

... 

for index,i in enumerate(I_phase): 
    F = sum(m*np.cos(2*np.pi*l*x/D) for m,l in zip(i,n)) 
    f,(ax1,ax2) = plt.subplots(2) 
    ax1.plot(x,F,'g') 
    ax1.set_title(phase[index]) 

... 

(我通常會用「我」而不是「指數」,但你已經使用了「我」 )