コンテンツにスキップ

gnuplotの色に関するTIPS

デフォルトの色使いの変更(gnuplot5)

色使いはお好みだけれども、

1
set colorsequence podo
としてpodoを利用するのがよい。.gnuplotなどに書いて起動時に設定してしまうと良い。色弱にも認識しやすい色使いとのこと。

なお、gnuplot4と整合性を取るには、

1
set colorsequence classic
を利用する。

参考

色を系統的に変える方法1:palette rgbformulaeの利用

paletteを利用する事で系統的に色を指定できる。 使い方は、

1
set palshow palette rgbformulaeette rgbformulae 3,11,6
とすればよい。 最後の3つの数字で、RGBの値の変化を指定している。 詳細は、show palette rgbformulaeで見られる。また、値の選び方の例は、

などで見られる。 paletteで指定した色を線の色に使うには、linecolor palette frac <val>を利用する。

出力を適当にフォーマットしつつ、デモにまとめると、

1
2
3
4
5
6
7
set palette rgbformulae 3, 11, 6
unset colorbox

set yrange [-0.05:1.05]
set key invert outside

plot for [i=0:10] i/10.0 w l linecolor palette frac i/10.0 lw 5 title gprintf("val=%2.1f", i/10.)
で色が緑から桃色に系統的に替わる10本の線が引ける。

出力結果は、

色を系統的に変える方法2:hsv2rgbの利用

RGB色空間で色を指定するのは必ずしも直感的でない。「色相(Hue)」「彩度(Saturation)」「明度(Value・Brightness)」を利用するHSV色空間で色を指定した方が直感的かつ系統的に操作できる。

HSV色空間についての詳細は、

などを参照のこと。 gnuplot5ではHSVの値を利用して色を指定することができる。線の色として指定するには、linecolor rgbcolor hsv2rgb(H,S,V)となる。H,S,Vは色相、彩度、明度の値で0から1までの値を取る。

ところで、色相を360度変えてしまうと、同じ色に戻ってしまう。ここでは、色相は0度(赤)から280度(青紫)まで回して色を決めることにする。gnuplotで実現するためには、hsv2rgb(H,S,V) に渡す Hを0から280/360の範囲で変化させればよい。彩度と明度は、色が飽和しないように少し落とすことにする。

このような設定で線を10本引くには、 以下のようにすればよい。

1
2
3
set yrange [-0.05:1.05]
set key invert outside
plot for [i=0:10]  i/10.  w l linecolor rgbcolor hsv2rgb(i/10.*280./360., 0.85,0.85) lw 5 title gprintf("val=%2.1f", i/10.)

出力結果は、

となり、系統的に色を変えられていることが分かる。