3

私の質問はこれと非常によく似ており、そこから多くのことを学ぶことができました。ただし、次のように複数のデータブロックを操作しています。

1 2 3
4 5 6
7 8 0
4 3 0


4 5 7
2 3 0
4 5 0
5 6 7

そして私はそれらをこのようにプロットしています:

plot "file.txt" index 0 u 1:2 w points pt 1,\
     "file.txt" index 1 u 1:2 w points pt 2

それぞれ異なる色の2つの異なるポイントのセットを作成します。ここで、私の目標は、このスクリプトを変更して、3番目のデータ列が0の場合、ポイントの色が黒になるようにすることです。他のポイントは、現在の色のままにしておきたい(意味が違う)。私はこれをしました:

set palette model RGB defined ( 0 'black', 1 'green' )
unset colorbox
plot file index 0 u 1:2:( $3 == 0 ? 0 : 1 ) w points pt 1 palette,\
     file index 1 u 1:2:( $3 == 0 ? 0 : 1 ) w points pt 2 palette

もちろん、両方のセットが緑色でプロットされていることを除いて、これはまさに私が望むことを実行します。必要に応じて黒いものをプロットするだけでなく、各インデックスを異なる色にする方法はありますか?

4

2 に答える 2

3

これが、特別な「可変」カラーの目的です。

plot 'test.dat' i 0 u 1:2:($3 == 0? 0:1) w p pt 1 lc variable,\
     'test.dat' i 1 u 1:2:($3 == 0? 0:2) w p pt 2 lc variable

variableこのコンテキストでは、3 番目の列で指定された「スタイル インデックス」の色を使用するように指示されています。その列のデータが 0 でない場合、3 番目の列を定数 (1 または 2) に変換する 3 番目の列変数にフィルターを設定します。

もう1つの、あまり直接的ではないアプローチ(ポイントを使用しているため機能します)は次のとおりです。

plot 'test.dat' i 0 u 1:($3 == 0? 1/0: $2) w p pt 1 lc rgb "red",\
     'test.dat' i 0 u 1:($3 == 0? $2:1/0) w p pt 1 lc rgb "black,\
     'test.dat' i 1 u 1:($3 == 0? 1/0: $2) w p pt 1 lc rgb "green",\
     'test.dat' i 1 u 1:($3 == 0? $2:1/0) w p pt 1 lc rgb "black,\
于 2012-09-14T16:52:20.113 に答える
2

パレットに追加のポイントを定義するとうまくいくはずです:

set palette model RGB defined ( 0 'black', 1 'green', 2 'red')
unset colorbox
plot file index 0 u 1:2:( $3 == 0 ? 0 : 1 ) w points pt 1 palette,\
     file index 1 u 1:2:( $3 == 0 ? 0 : 2 ) w points pt 2 palette

ここに画像の説明を入力

于 2012-09-14T16:03:14.373 に答える