1

现在它以这种方式工作,所以我需要以 .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()
4

1 回答 1

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

或者,您可能希望避免在循环中创建新图形(特别是如果您有很多),创建一次并重复使用:然后您需要在保存后清除它,请参见此处

根据经验,from pylab import *除非您处于交互模式,否则我建议避免从 pylab 导入一揽子文件。

于 2013-04-22T10:52:11.510 回答