2

こんにちはAllyouLovely People on stackoverflow、

gnuplotを使ってデータをプロットしようとしています。まず、テーブルを読み、必要なデータを引き出します。このデータを.datファイルに書き込みます。今のところ、コマンドラインからプロットしようとしていますが、動作した後、Pythonスクリプトからプロットするために必要なコードを追加します。

.datファイルを作成する私のコード-

#!/usr/bin/python

file = open("test_m.rdb")
table = open('table.dat', 'w+')

trash = file.readline()

trash = file.readline()

data = file.readline()
i = data.split()
flux = i[2]
observed = i[4]
table.write(flux + " " + observed,)

while 1:
    line = file.readline()
    i = line.split()
    try:
        flux = i[2]
        observed = i[4]
    except IndexError:
        break
    table.write("\n" + flux + " " + observed)
    table.close()

cygwinで使用しようとしているコマンドとエラー-

gnuplot plot table.dat

0.058 2
^
"table.dat", line 1: invalid command

前もって感謝します。私はあなたが提供できるどんな提案にも感謝します。

4

1 に答える 1

4

あなたはおそらく欲しい:

gnuplot --persist -e 'plot "table.dat" u 1:2'

あなたのコマンドで、gnuplot は 'plot' と呼ばれるファイルで実行するコマンドを探し、次に 'table.dat' と呼ばれるファイルで実行します。「table.dat」には実行するコマンドがなく、プロットするデータがあります。「-e」を使用することは、一重引用符で囲んだものを一時ファイル (temp.gp と呼びます) に入れてからgnuplot temp.gp. これ--persistにより、プロットが画面に表示されたままになります(ファイルに保存しているとは思えないので、これが必要です)。ファイルに保存する方法を学ぶには、gnuplot 内で次のように help set termhelp set outputますset term

編集

私は cygwin についてあまり知らないので、デフォルトの端末が何であるか (またはどの端末が有効になるか) がわかりません。

試してみるいくつかのこと:

gnuplot -e 'plot "table.dat" u 1:2; pause -1'  #this should leave your plot open until you hit return

コマンドをファイルに入れる

#tmp.gp
set term postscript enh color
set output "tmp.ps"
plot "table.dat" u 1:2

今それを実行します:

gnuplot tmp.gp

次に、Postscript を表示するためのツールを使用して Postscript を開きます。私は をよく使用しますgvが、cygwin に何があるかわかりません。

gv tmp.ps &
于 2012-06-07T18:24:16.813 に答える