2

我有以下代码生成 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()
4

1 回答 1

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”)

于 2013-05-03T14:38:08.217 回答