1

このように機能するようになったので、1.eps、2.eps のように .eps 形式で自動的に保存する必要があります。別のことですが、[1 1 1 1 1 1] のような y の出力を各プロットの上に置く方法はありますか? 私は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')

別の方法として、ループで新しい Figure を作成するのを避けたい場合もあり (特に、多数の Figure がある場合)、一度作成して再利用します。その後、保存後にクリアする必要があります。こちらを参照してください。

経験則として、from pylab import *インタラクティブ モードでない限り、pylab からのブランケット インポートを避けることをお勧めします。

于 2013-04-22T10:52:11.510 に答える