以下のコマンドは、色を制御します。
• Fill Color()は塗りつぶし領域の色
• Level Color()はカテゴリカルデータの色
• Pen Color()は直線と点の色
• Back Color()はテキストの背景色(図12.19の、消去したテキストを囲むボックスと同様)
• Background Color()はグラフの背景色
• Font Color()は追加テキストの色
塗りつぶしを行った場合、Fill ColorがPen Colorを上書きします。一部の描画パッケージのように両方を同時に使うことはできません。同時に使うには、一方は塗りつぶし、もう一方は塗りつぶさない2つの図形を描きます。色は1つの数値引数、引用符で囲んだ色の名前、RGB値などで指定できます。JMPが提供している標準の色は、番号0~15(0と15は黒)または名前(表12.1)で指定することができます。
ヒント: 濃淡をつけたいときは、引用符で囲んだ色名の前にDark、Medium Dark、Medium Light、Lightといった言葉を追加します。
番号 |
名前 |
---|---|
0 |
Black(黒) |
1 |
Gray(グレー) |
2 |
White(白) |
3 |
Red(赤) |
4 |
Green(緑) |
5 |
Blue(青) |
6 |
Orange(オレンジ) |
7 |
BlueGreen(青緑) |
8 |
Purple(紫) |
9 |
Yellow(黄色) |
10 |
Cyan(シアン) |
11 |
Magenta(マゼンタ) |
12 |
YellowGreen(黄緑) |
13 |
BlueCyan(ブルーシアン) |
14 |
Fuchsia(赤紫) |
次のスクリプトは、JMPカラーがすべて揃ったグラフを作成します。
Text Color( 0 );
New Window( "色",
Graph Box(
FrameSize( 640, 400 ),
Y Scale( -1, 17 ),
X Scale( -3, 12 ),
k = 0;
For( jj = 1, jj <= 12, jj += 2,
l = 15;
For( i = 0, i <= 15 & k < 85, i++,
thiscolor = Color To RGB( k );
Fill Color( k );
thisfill = 1;
If( thiscolor == {1, 1, 1},
Pen Color( 0 );
thisfill = 0;
,
Pen Color( k )
);
Rect( jj, l + .5, jj + .5, l, thisfill );
Text( {jj - 1, l}, "色", k );
k++;
l--;
);
);
jj = -2;
color = {"黒", "グレー", "白", "赤", "緑", "青", "オレンジ", "青緑",
"紫", "黄色", "シアン", "マゼンタ", "黄緑", "ブルーシアン", "赤紫", "黒"};
For(
i = 0;
l = 15;, i <= 15 & l >= 0,
i++;
l--;,
Text( {jj, l}, color[i + 1] )
);
) );
16以上の番号は、同じ色の並びを濃淡の違いで繰り返します。これをデモンストレーションするスクリプトは、色とマーカーにあります。0~84の範囲外にある値は無効です。
番号 |
結果 |
---|---|
16~31 |
やや暗い |
32~47 |
やや明るい |
48~63 |
暗い |
64~79 |
明るい |
80~84 |
明るい、やや明るい、グレー、やや暗い、暗い |
RGB値を使う場合は、赤、緑、青の順でそれぞれの含有率をリストして、各色を指定します。
Pen Color( {.38,.84,.67} ); // 緑がかった青
RGB Color()とColor to RGB()は、JMPの色番号とRGB(赤、緑、青)値との間の変換を行います。次の例は、JMPカラー3(赤)のRGB値を取得します。
Color to RGB( 3 );
{0.941176470588235, 0.196078431372549, 0.274509803921569}
同様に、HLS Color()とColor to HLS()は、JMPの色番号とHLS値(色調、明度、彩度)との間で変換を行います。
win = New Window( "カラーホイール",
Graph(
Frame Size( 200, 200 ),
For( hue = 0, hue < 360, hue += 30,
y = 50 - 40 * Cos( hue * 2 * Pi() / 360 );
x = 50 + 40 * Sin( hue * 2 * Pi() / 360 );
Fill Color( HLS Color( hue / 360, 0.5, 1 ) );
Oval( x - 10, y - 10, x + 10, y + 10, 1 );
)
)
);
Heat Color()は、セルプロットやツリーマップなどで使用されている任意のカラーテーマにおける値に対し、該当するJMPの色番号を戻します。構文は次のとおりです。
Heat Color( n, <<"theme" )
themeメッセージはオプションで、デフォルト値は「青->グレー->赤」(Blue to Gray to Red)です。カスタムカラーテーマを含め、任意のカラーテーマを指定できます。次の例にあるように、匿名のカラーテーマを作成し、使用することもできます。
Heat Color( z, <<{"", {{1, 1, 0}, {0, 0, 1}} } );
Heat Color( z, <<{"", {blue, green, yellow} } )