2016-07-01 14 views
1

データファイルをループして特定の点を抽出してグラフ上にプロットし、次に画像をに保存する方法はありますか?これまでgnuplotの1つのファイルでデータをループする方法はありますか?

例えば

私のコード:

save output 'graph.$n.png' 
set label 4 at $x,$y point pointtype 5 
plot 'C:\Users\Desktop\testdata.dat' using 2:3 w l 

しかし、私は第二と第三の列に、1行に含まれる値であることが「X」と「Y」を変更できるようにしたいですデータファイル、plotを折れ線グラフ上に配置し、画像を保存して、次のデータ値の行にループします。 100以上のデータがあり、このグラフ作成プロセスを自動化する方法が必要です。

すべてのサポートをいただきありがとうございます。

グレース

+1

データのサンプルを提供してください。いくつかのデータを使って何をしようとしているのかを理解することはずっと簡単です。 – Matthew

+0

すべての画像にグラフ全体をプロットしますが、各画像には1つの点だけをラベルしますか? –

+0

あなたは 'set output 'を意味します...'私は正しいのですか? –

答えて

1

awkを持っている場合は、ターミナルでタイプ

awk 'BEGIN{i=1;while(i<100){printf "set term png;set output \"graph.%03d.png\";plot \"testdata.dat\" u 2:3 every 99999::"i"pt 5,\"testdata.dat\" u 2:3 w l;\n",i,i+5;i++}}' > test.plt 

が、これは

gnuplot 

とプロットファイルを読み込む開いた後、プロットファイル "test.plt" を生成します

load "test.plt" 

その後、100のPNGファイルが生成されます。

例:testdata.datがsin(x)関数である場合、下の図のようなシリアル番号を持つ100個のpngファイルが取得されます。 100個の以上のファイルの場合、適切な値で

while(i<100) 

を交換してください。 enter image description here

1

私はまた、(外部補助ファイルを使用せずに)「1行のソリューションを知らないが、「プルーgnuplotの」ソリューションがあります:

stats 'Grace.dat' 
n=STATS_records 
i=1 
load 'hundreds_of_plots.plt' 

「hundreds_of_plots.pltは」ここで、

set term unknown 
plot [i-1:i-0.5] 'Grace.dat' u 0:2 
labelx=GPVAL_DATA_Y_MAX 
plot [i-1:i-0.5] 'Grace.dat' u 0:3 
labely=GPVAL_DATA_Y_MAX 
set label 4 at labelx,labely point pointtype 5 
set term png 
set output "".i.'.png' 
plot 'Grace.dat' u 2:3 w l 
i=i+1 
set output "".i.'.png' 
if (i<=n) reread 
関連する問題