现在它的工作方式是这样的,所以我需要以.eps格式自动保存它们,如1.eps,2.eps的增量。另一件事,是否有一种方法可以将y的输出像[1 1 1 1 1 1]放在每个图的顶部?我对python很新,这就是为什么我还在努力学习这些东西。 3phases.txt文件由3行
组成1 1 1,
1 -1 1,
-1 -1 -1
代码:
import matplotlib.pyplot as plt
import numpy as np
D=13.0
n = range(1,7)
x = np.linspace(-0.3-D/2, 0.3+D/2, 3000)
q = np.array([0, 4.38, 12.61, 3.63, 0, 6.39])
f = open('3phases.txt','r')
for line in f.readlines():
line = line.split()
line.insert(0, '1')
line.insert(3, '1')
line.insert(4, '1')
t=map(float,line)
y = np.array(t*q)
d=sum(l*np.cos(2*np.pi*j*x/D) for j,l in zip(n,y))
fig, ax = plt.subplots()
ax.plot(x, d, 'ro')
plt.show()
答案 0 :(得分:3)
那么,您想为输入文件的每一行创建单独的图表吗? 然后你可以这样做:
import matplotlib.pyplot as plt
import numpy as np
with open('3phases.txt', 'r') as f:
for j, line in enumerate(f):
print line
x = np.array([int(l) for l in line.split()])
fig, ax = plt.subplots()
ax.plot(x, x**2, 'ro')
plt.savefig(str(j)+'.eps')
或者,您可能希望避免在循环中创建新数字(特别是如果您有很多),创建一次并重复使用:然后您需要在保存后清除它,请参阅here 。
根据经验,除非您处于交互模式,否则我建议避免从pylab from pylab import *
进行一揽子导入。