Matplotlib:使用循环绘制的8个图的相同标题

时间:2013-05-03 13:54:00

标签: python matplotlib

我有以下代码生成8个图。我想把各个阶段作为标题放在每个情节中。所以我已经成功地把这个阶段放在了情节上。但是,不是采取相应的阶段,而是始终在每个情节中显示最后阶段。 8phases.txt文件有以下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 个答案:

答案 0 :(得分: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])

...

(我通常使用“i”而不是“index”,但你已经使用过“i”)