グラフィックス指示子とグラフィックスオプション
グラフィックスオブジェクトを作成するには,通常,構成要素を列記したリストを与える.また,リストにグラフィックス指示子を加えておけば,指示子に続く要素をどう描画したらよいかを指示することができる.
グラフィックスオブジェクトは普通ネストしたリストの集合体として与えられる.このとき,各サブリストは描画要素を表す.グラフィックス指示子をこのような集合体に与えると,指示子を加えたリストにおいて,指示子に続くすべての要素(要素がサブリストであればその要素も)が指示子の影響を受ける.しかし,リストの外まで影響は及ばない.
| Out[1]= |  |
| Out[2]= |  |
| GrayLevel[i] | グレースケール幅0(黒)から1(白)のグレー値で明暗度を指定する |
| RGBColor[r,g,b] | 赤緑青の各原色についてそれぞれ0から1で色合いを指定する |
| Hue[h] | 幅0から1で色調 h を指定する |
| Hue[h,s,b] | 幅0から1で色調,飽和度,明暗度を指定する |
描画色の指定に使う基本機能
Mathematica は多くの色の名前を直接色指定として受け入れる.Red,Gray,LightGreen,Purple等の色は,評価してRGBColor指定となる変数として実装される.色の名前は色指示子と互換に使うことができる.
最初のプロットは色の名前で,2つ目のプロットは微調整された
RGBColor指定である.
| Out[3]= |  |
書式Hue[h]を使うと1つのパラメータで色調指定ができ便利である.h で指定する色調値は0から1の値を取る.Hue[h]の値の範囲は赤,黄色,緑,水色,青,紫,そして再び赤に戻る色の輪に対応している.さらに,拡張書式Hue[h, s, b]を使えば,色調だけでなく,色の飽和度と明暗度も指定できる.飽和度1で「原色」が得られ,0に減少していくと「あせた色」が得られる.
RGBColor等のグラフィックス指示子は一度指定したら,その時点から,指定に続く同じリスト内の全要素に適用される.このような無差別に作用する指示子に対して,特定のグラフィックス要素だけに作用する指示子もある.
例えば,PointSize[d]がその一例である.この指示子をグラフィックスオブジェクトに適用すると,すべてのPoint要素が直径 d の円として描画されるようになる.PointSizeでは,直径 d はプロット領域の幅を1としたときの相対的な割合で表す.
さらに,指示子AbsolutePointSize[d]を使えば絶対単位で直径を指定することができる.1ポイントは
インチでプリンタの1ポイントにほぼ等しい.
点のグラフィックス指示子
| Out[4]= |  |
各点を,プロット領域の幅の10分の1の直径を持つ円として描かせる.
| Out[5]= |  |
| Out[6]= |  |
線のグラフィックス指示子
太さを変えた線のリストを作る.太さを絶対値で指定する.
| Out[7]= |  |
| Out[8]= |  |
Dashingの描画指定を行うと任意な形の破線が引ける.破線を引く基本的なやり方は短い実線区間と空の区間を交互に繰り返すことである.区間の長さを変えることで破線の形を変える.また,Dashingでは実線の区間と空の区間の単純パターンだけでなく,複雑な区間の組合せパターン(例えば,一点鎖線)を構成することも可能である.
| Out[9]= |  |
| Out[10]= |  |
| Out[11]= |  |
数値サイズ指定を必要とするグラフィックス指示子はTiny,Small,Medium,Large等の値をとることもできる.各指示子に対して,これらの値は微調整されており,人間の目に適した外観を生成するようになっている.
| Out[12]= |  |
以下ではすべてのマルチポイントで大きい緑色の点を使うよう指定されている.
| Out[13]= |  |
CapForm指示子を使うと,線の両端に付けるキャップを指定することができる.キャップの形は
,
,
とすることができる.
| Out[14]= |  |
CapForm["Butt"]では線が厳密にその終点で終了することを指定する.
というキャップは線の終点から線の幅の二分の一だけはみ出した形となる.
キャップは線の幅を直径とする半円である.
またJoinForm指示子を使うと,線分間の継ぎ目の形を指定することができる.
| Out[15]= |  |
| JoinForm[{"Miter",d}] | 線の幅のほぼ d 倍だけ接合を拡張する |
斜め接合の最大の長さを指定する
隣接する線分同士の角度が小さい場合,斜め接合の点は非常に長くなることがある.過剰に長い点は,デフォルトで面取りされた接合に切り取られる.これが起る長さ,斜め接合限界は,5つの頂点の星の点は鋭いがそれより鋭い接合は面取りされるよう設定されている.この限界はJoinFormを使って指定し,厳密にいつ鋭い接合を面取りするかを制御することができる.斜め接合の限界は,接合における点が面取りされる前に,接合の頂点を超えることを許されている線の幅の数である.
この7つの頂点の星の点は,デフォルトの斜め接合限界により切り取られている.
| Out[16]= |  |
斜め接合の限界を明示的に大きく指定すると,各頂点が鋭くなる.
| Out[17]= |  |
RectangleのRoundingRadiusオプション
Rectangleプリミティブの角はRoundingRadiusオプションで丸めることができる.これは長方形の角の半径を指定するオプションである.実際の丸まり方は,隣接する辺の半分の長さに制限されている.
| Out[18]= |  |
グラフィックス指示子の使い方の1つは,グラフィックスオブジェクトの構成要素であるグラフィックスプリミティブのリストに直接挿入し局所的に適用させる使い方である.しかし,場合によっては,もっと大域的な描画指定を使いたい.例えば,特定のグラフィックス要素に指示子を適用し,その要素がどこで現れても描画指定を有効にしたい.これは,いわゆる要素の描画スタイルを設定することに相当する.次の表のグラフィックスオプションを使いスタイルを指定することができる.また,各オプションにはスタイルを実際に形作るグラフィックス指示子が割り当てられる.
スタイル定義・設定用のグラフィックスのオプション
すべての曲線が同じスタイルを使うよう指定されたプロットを生成する.
| Out[19]= |  |
それぞれの曲線に特定のスタイルを与えるように,異なる
PlotStyle式を使うことができる.
| Out[20]= |  |
「スタイル設定のオプション」がいくつか用意されているので,それらを使いプロットするときに特定の描画要素をどう表示するかを指定することができる.さらに,プロット全体の描画様式を決めるオプションも用意されている.
プロット全体の描画様式を決めるグラフィックスオプション
| Out[21]= |  |
| Out[22]= |  |