0

私は Python の初心者です。名前に変数が含まれる Gnuplot.py で作成された画像 (大量の画像) を取得するにはどうすればよいですか? 単一の画像を作成するこの関数があります:

def printimage(conf, i):
   filename = str(i) + "out.postscript"
   g = Gnuplot.Gnuplot()
   g.title('My Systems Plot')
   g.xlabel('Date')
   g.ylabel('Value')
   g('set term postscript')
   g('set out filename')
   databuff = Gnuplot.File(conf, using='1:2',with_='line', title="test")
   g.plot(databuff)

そして、この関数は for ループで使用されます:

i = 0
for row in data:
   config_soubor.write(str(i) + " " + row[22:])
   printimage("config_soubor.conf", i)
   i = i + 1

「未定義の変数: ファイル名」というエラーをまだ取り除くことができません。

ありがとう、マイズリク

4

3 に答える 3

0

gnuplot は の形式の行を想定していset output "filename"ます。ファイル名は文字列でなければならないことに注意してください。したがって、あなたの例では、次のようになります。

g('set out "%s"'%filename)

または新しいスタイルの文字列フォーマットを使用する:

g('set out "{0}"'.format(filename))

他にも改善できることがいくつかあります。一般に:

i = 0
for x in whatever:
    ...
    i = i + 1

次のように書く方が良いです:

for i,x in enumerate(whatever):
    ...

また、再び文字列フォーマットを使用します。

str(i) + " " + row[22:]

次のように変換できます。

'%d %s'%(i,row[22:])

また:

'{0} {1}'.format(i,row[22:])

これらは些細なことであり、このスクリプトではおそらく大きな違いはありませんが、将来のために覚えておくとよいでしょう。

于 2013-05-03T12:01:52.523 に答える