12

1000000エントリ、つまり1000000行の2列のファイルがありますが、すべてのデータをプロットするのではなく、100行ごとにポイントをプロットしたいだけですか?gnuplotでこれを行う方法は?また、gnuplotでプロットする特定の行を指定することは可能ですか?

4

1 に答える 1

28

ここには少なくとも2つのオプションがあります。まず、のドキュメントを確認してくださいhelp datafile every

plot 'datafile' every 100 using 1:2 

もう1つのオプションは、疑似列0(help datafile using pseudo)を三項演算子(help ternary)と組み合わせて使用​​し、gnuplotが未定義の数値を黙って無視して行をフィルタリングするという知識を使用することです。

plot 'datafile' u ( ((int($0)%100)==0)? $1 : 1/0 ):2

マクロを使用すると、これをもう少し理解しやすくすることができます。

set macro
line_number='int($0)'
plot 'datafile' u ( ( ( @line_number % 100 ) == 0 ) ? $1 : 1/0 ) : 2

これを使用して、データファイルから非常に奇妙な行番号(例:1,100,1000,10000)を選択できるため、2番目のみを含めることに注意してください。

plot 'datafile' u ( ((@line_number == 1 || @line_number == 100 || @line_number == 1000 ) $1:1/0)):2

この質問への回答も参照してください

于 2012-06-04T13:23:12.387 に答える