3つのプロットを持つgnuplotを作成したい。データはインラインである必要があります(
次のようになります:
現在、プロットを作成するために次の 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 を介してデータを送信することは適切ではありません。