プロットデータをgnuplotスクリプトにパイプする 質問する

プロットデータをgnuplotスクリプトにパイプする 質問する

3つのプロットを持つgnuplotを作成したい。データはインラインである必要があります(

次のようになります:

https://s22.postimg.cc/qcc94e1i9/test.png

現在、プロットを作成するために次の gnuplot スクリプトを使用しています。

set terminal png
set output "test.png"
plot for[col=2:4] "data.txt" using 1:col title columnheader(col) with lines

ファイルは次data.txtのとおりです:

Generation Best Worst Average
0 2 1 0
1 3 1 2
2 4 3 3
3 4 3 3
4 6 3 4
5 7 4 5
6 9 6 7
7 10 6 9
8 10 5 6
9 11 6 8
10 12 7 9

data.txt を gnuplot にパイプし、スクリプト内の参照データ ファイルに依存しないようにしたいと思います。 のようなものにしますcat data.txt | gnuplot plot.gnu。 理由は、複数のファイルがあり、それぞれに対してファイルdata.txtを作成したくないからです。plot.gnu

特別'-'ファイルについて読んだこのstackoverflowのスレッドでそして私は読んだ1つのファイルに複数のプロットただし、これにはデータを gnuplot コードに含める必要があり、これはクリーンではありません。

ベストアンサー1

Unix システム (つまり Windows ではない) を使用している場合は、'<cat'代わりに を使って'-'stdin から読み取ることができます。

plot '<cat' using ...

次に、 を実行できますcat data.txt | gnuplot script.gp。ただし、質問で言及した特定のケースでは、 for ループ内のプロットを使用して、入力を 3 回読み取ります。したがって、データは最初に読み取られた後に消えてしまうため、stdin を介してデータを送信することは適切ではありません。

おすすめ記事