多个图并将它们保存为增量

时间:2013-04-22 10:36:16

标签: python plot

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

1 个答案:

答案 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 *进行一揽子导入。