95.67.2 Defined

灰色から RGB への対応は palette defined を使うことで手動で設定できま す: 色勾配 (gradient) は RGB の値を与えるために定義され使用されます。 勾配は、[0,1] の灰色値から [0,1]x[0,1]x[0,1] の RGB 空間への、区分的に 線形な写像です。その線形補間に使われる灰色値と RGB 値の組を指定する必 要があります:

書式:

     set palette  defined { ( <gray1> <color1> {, <grayN> <colorN>}... ) }

< grayX> は [0,1] に割り当てられるべき灰色値で、< colorX> はそれに対応す る RGB 色です。カラー値は 3 種類の方法で指定することができます:


    <color> :=  { <r> <g> <b> | '<color-name>' | '#rrggbb' }

赤、緑、青に対応する空白で区切られた 3 つの値 (それぞれ [0,1] 内)、引 用符でくくられた色名、または引用符でくくられた X 形式の指定方式、のい ずれかです。勾配の定義では、これらの 3 種の型を自由に組み合わせること ができますが、色空間として RGB でないものが選択された場合色名 "red" は 少し違ったものになるでしょう。使用できる色名は show colornames でそ の一覧を見ることができます。

< r> と書いても、HSV 色空間ではそれは < H> 成分を、CIE-XYZ 空間では < X> を、といったように選択されたカラーモデルに依存して意味が違うことに注意 してください。

< gray> の値は実数の昇順に並べる必要があります。その列の値は自動的に [0,1] に変換されます。

カッコつきの勾配の定義なしで set palette defined とした場合、RGB 色 空間にし、あらかじめ設定されたフルスペクトル色勾配を使用します。勾配を 表示するには show palette gradient を使用してください。

例:

灰色のパレット (役に立たないが教訓的な) を生成するには:

     set palette model RGB
     set palette defined ( 0 "black", 1 "white" )

青黄赤のパレット (全てが等価の) を生成するには:

     set palette defined ( 0 "blue", 1 "yellow", 2 "red" )
     set palette defined ( 0 0 0 1, 1 1 1 0, 2 1 0 0 )
     set palette defined ( 0 "#0000ff", 1 "#ffff00", 2 "#ff0000" )

虹のようなパレットを生成するには:

     set palette defined ( 0 "blue", 3 "green", 6 "yellow", 10 "red" )

HSV 色空間でのフルカラースペクトル:

     set palette model HSV
     set palette defined ( 0 0 1 1, 1 1 1 1 )
     set palette defined ( 0 0 1 0, 1 0 1 1, 6 0.8333 1 1, 7 0.8333 0 1)

MATLAB で使われるデフォルトパレットの近似:

     set pal defined (1 '#00008f', 8 '#0000ff', 24 '#00ffff', \
                      40 '#ffff00', 56 '#ff0000', 64 '#800000')

等間隔な少しの色だけのパレットを生成するには:

     set palette model RGB maxcolors 4
     set palette defined ( 0 "yellow", 1 "red" )

'交通信号' (滑らかではなく gray = 1/3, 2/3 で跳びを持つ):

     set palette model RGB
     set palette defined (0 "dark-green", 1 "green", \
                          1 "yellow",     2 "dark-yellow", \
                          2 "red",        3 "dark-red" )

竹野茂治@新潟工科大学
2017年10月31日