gnuplotでdatファイルから行と列を指定して値を拾う方法
例えば,1行目にタイトル,2行目以降にデータが有るようなファイルがあるとする:
titleOfTest 0.0 0.000000 0.4 0.389418 0.8 0.717356 1.2 0.932039 1.6 0.999574 2.0 0.909297
これをgnuplotで
plot "test.dat" u 1:2 with linespoint
とすると,1行目の部分は1列しか無いので無視されて,2〜7行目の部分がプロットされる. データファイルの(1,1)の部分を使いたいときは,以下のようにする.
gyou=1 #行番号を指定 retsu=1 #列番号を指定 filename="test.dat" # ファイル名を指定 elem=system("cat " . filename . " | awk \'NR==" . gyou ."{print $" . retsu . "}\'") # 特定の行列から値を拾う # ここから通常の処理 set title elem plot filename u 1:2 with linespoint
また,拾う行列の値が数値の場合,以下の様に4行目を変更して,C言語同様の書式指定(%e,%4f,%d など・・・)ができる.
gyou=2 #行番号を指定 retsu=1 #列番号を指定 filename="test.dat" # ファイル名を指定 elem=system("cat " . filename . " | awk \'NR==" . gyou ."{printf(\"%e\", $" . retsu . ")}\'") # %eの部分を好きに変える # ここから通常の処理 set title elem plot filename u 1:2 with linespoint