Gnuplotでこれを行うには:
plot "test.csv" using 1:2 if value_in_column_3 == 80.0
列3 == 80.0の行のみを選択し、他のすべての行を無視する必要があります(他の行に0をプロットするのではなく、単に無視します)
前もって感謝します。
次のデータセット(1.dat
)、
1 0.8 0
2 0.6 0
3 0.9 1
4 1.1 0
5 0.7 0
6 0.6 1
ここでは、3番目の列がゼロに等しい場合にのみ最初の2つの列をプロットします。次に、これを試すことができます:
plot '1.dat' using 1:($3==0?$2:1/0)
(Gnuplotメーリングリストで markjoe にクレジットしてください。)
上記のchlが述べているように、gnuplotでこれを行う唯一の方法はかなりハックです:gnuplotのterniary?:演算子を使用して、データセットから除外したいポイントで数値エラーを生成する必要があります。
私はプロジェクトの著者であるため、ここで偏っているかもしれませんが、Pyxplotを見てみたいと思うかもしれません http://www.pyxplot.org.uk (また、無料でオープンソースです) 、このようなハックな構文に少しうんざりしていたgnuplotユーザーのグループによって書かれました。
その構文はgnuplotに非常に似ていますが、拡張機能があります。必要に応じて、plotコマンドで「選択基準」を指定できます。ポイントは、Trueをテストする場合にのみ含まれます。詳細については、 http://pyxplot.org.uk/current/doc/html/sec-select_modifier.html を参照してください。
別のハックは、awk
のようなシェルコマンドを使用することです。
plot "< awk '$3==80.0 { print $1, $2 }' test.csv" using 1:2