gnuplotで複数行から成るデータの第n行目だけを点としてプロットしたい場合があります。
例えば、全100行から成るデータ(“data.d”)の第17行目だけをプロットしたいとします。
この時、
plot "data.d" every ::17:0:17:0 u 1:2
とすれば、第17行目だけが点としてプロットされます。
その他、例えばデータではなく、ある関数のf(x)のx=5.7の時だけの値をプロットしたい時は
plot sprintf("< echo ''%f %f''", 5.7,f(5.7))
とすればよいです。
例1
データ”test.d”として
1 0.1
2 0.2
3 0.3
4 0.4
5 0.5
6 0.6
7 0.7
2 0.2
3 0.3
4 0.4
5 0.5
6 0.6
7 0.7
を考えます。この時gnuplot上で、
plot "test.d" every ::5:0:5:0 pt 7
例2
sin(5.7)を考えます。gnuplot上で
plot sprintf("< echo ''%f %f''", 5.7,sin(5.7)) pt 7
とすれば
という画像を得ます。都合上同時にsin(x)も出力しています。
参考文献
複数のデータファイルのある列の差分表示 -計算機は楽し
gnuplotのコマンドまとめ(ループとかeveryとか) -Linux, Mac, Emacsについての設定、覚え書き