1

次の形式のデータがあります。

x   y   value
1   1   3
1   2   3
1   3   3
2   1   4
2   2   4
2   3   4
3   1   5
3   2   6
3   3   7

この例では、値 3 と 4 が 3*3 グリッドで最も頻繁に発生します。目標は表面の画像を作成することであり、座標の色は「値」に依存します。これは単なる例であることに注意してください。実際には、約 500 * 150 の座標のグリッドがあり、値は最大で約 1000 です。現在、次のような画像をプロットしています。

plot "data.csv" u 1:2:3 with points pt 5 ps variable palette

例を考えると、標準的なパレットを使用すると、3 と 4 の色は似ています。異なる値の量が増えると、これはさらに悪化します。

私が望むのは、最も頻度の高い値の色が互いに最も大きく異なることです。これが必要なのは、データの性質上、残りのデータと比較して値が近く、同時に高い頻度の値が存在することが多いためです。例を考えると、たとえば 3 を青、4 を赤にしたいと思います。値 5、6、および 7 のように発生しない値がさらにある場合でも、3 と 4 の色が非常に離れていることを望みます。再び青と赤のように。全体的なポイントは、色のために高周波値を簡単に区別できるということです。

上記を行うのは難しいと思いますが、これは代替手段になる可能性があります。代替手段として、たとえば値1から10までの虹色のグラデーションなど、低い値の「高速」グラデーションが必要です。たとえば、青を除きます。次に、たとえば値が 11 ~ 1000 の場合、残りの色 (この例では青、または残りの色の範囲) に向かって「ゆっくりとした」グラデーションが必要です。これは、低い値がより差別化された色を持つことを意味し、データの性質上、低い値がより頻繁に発生する傾向があるため、ある程度は十分です。これは簡単な解決策だと思いますので、最初の解決策ではなく、これに対する解決策がある場合は、それについて言及してください。

前もって感謝します!

4

1 に答える 1

1

出発点として考えられるパレットの 1 つを次に示します。

set terminal postscript eps color
set output 'test.eps'
set palette defined (0 1 0 1, 1 1 0 0, 2 1 1 0, 3 0 1 0, 100 0 0 1) maxcolor 2**12
test palette
set output

これにより、次の結果が得られます。 ここに画像の説明を入力

postscriptパレットによる色付けを使用する場合、他のほとんどの端末は 256 色しかサポートしていないため、端末を使用しました。もちろん、lc rgb variable代わりに使用することもできます。次に、最後の列は RGB 値の整数表現として解釈されますが、補間などを含む完全な色関数を自分で指定する必要があります。

于 2013-08-22T16:33:05.893 に答える