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