web-dev-qa-db-ja.com

Gnuplotで、3番目の列がゼロに等しいときにポイントを1つの色にし、それ以外の場合に別の色にする方法は?

1つの列の色に基づいて、値の行のポイントの色を変更する必要があります。データ:

# x y z
1, 3, 0  
1, 5, 6  
3, 5, 2  
4, 5, 0

列がゼロの場合、色は1つの値であり、3番目の列の値がゼロ以外の場合は別の色である必要があります。

だから、私は仮定しています:

plot "./file.dat" u 1:2:3 with points palette

ここにあるように: https://stackoverflow.com/a/4115001 は完全には機能しません。

上記のサンプルデータでは、そのgnuplotコマンドは、私が探している2つの色ではなく、3つの異なる色を提供します。

19
JessicaB

これはおそらくあなたが望むものに近いです:

set palette model RGB defined ( 0 'red', 1 'green' )
plot[0:5][0:6] "file.dat" u 1:2:( $3 == 0 ? 0 : 1 ) with points palette

さらに一歩進んで、「ノイズ」を取り除くことができます。

unset key
unset colorbox
plot[0:5][0:6] "file.dat" u 1:2:( $3 == 0 ? 0 : 1 ) with points pt 7 ps 3 palette

ゼロと非ゼロの区別だけが重要な場合。

26
vaettchen

パレットは次の方法で調整できます

set palette defined (-0.1 "blue", 0 "red", 0.1 "blue")
1
choroba