2013-05-03 71 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]) 

... 

(我通常会用“我”而不是“指数”,但你已经使用了“我” )