プロット仕様の変更

Wolfram言語では,どんな軸スケールを使うかとか,プロットする式のサンプリング点をどこにするかとか,また座標軸をどう描画するかとか,プロットの仕様をいろいろ変更できるようになっている.通常は,Wolfram言語により自動的に採用される設定条件で間に合うが,グラフの用途によっては,仕様を変更した方がよいときもあるだろう.

これはWolfram言語の関数全般に関して言えることだが,関数の動作条件を変更するには,「オプション」指定を行う.各オプションには決まった名前がある.例えば,プロットの条件を指定するにはPlot関数の最後に引数として,書式 で書かれた規則を引数として加える(ここで,name はオプション名,value は変更する設定値を示す).何も規則を指定しなければ,「デフォルト値」の規則が使われる.

Plot[f,{x,xmin,xmax},option->value]オプションに値を指定し,式をプロットする

プロット仕様の変更

Plotのような関数には設定できるオプションが数多くある.普通は,多くても2,3の項目を変更する程度で事が足りるだろう.プロットを見やすくするには,いろいろと実験してみるのが最善の方法である.例えば,あるオプションに一連の異なった値を設定していったとき,プロットの表示がどうなるかを見ていくとよいだろう.

オプションはプロットごとに指定することができる.また,プロットした後でも,オプションだけを変えて再表示することができるようにもなっている.これについては「プロットの再描画と組合せ」で説明する.

オプション
デフォルト値
AspectRatio1/GoldenRatioプロット領域の縦幅を横幅で割った比.Automaticは, の絶対座標から自動的に算出される比にする
AxesTrue軸を表示するかどうかを指定する
AxesLabelNone軸に表示するラベル.ylabel は, 軸のラベルを指定する.書式は両軸のラベルを指定する
AxesOriginAutomatic軸が交差する点
BaseStyle{}プロット中のテキスト要素に適用するデフォルトのスタイル
FormatTypeTraditionalFormプロット中のテキスト要素に適用する標準表記法
FrameFalseプロット領域の囲み枠を表示するかどうかを指定する
FrameLabelNone囲み枠に付けるラベル.ラベルはリスト形式で指定され,下部 軸から始まり時計方向の並び順になっていること
FrameTicksAutomatic囲み枠を引く場合,そこに目盛を付けるどうかを指定する.Noneは,目盛を付けない
GridLinesNoneどんな方眼線を入れるかを指定する.Automaticは,主な目盛の位置だけに線を描く
PlotLabelNoneプロットの題目
PlotRangeAutomaticプロットする座標の範囲.Allは,すべての点を含む
TicksAutomatic軸に付ける目盛の形を指定する.Noneは,目盛なし

Plot用オプション その1(これらはShowにも使える)

オプションをデフォルト値としてプロットする.
In[1]:=
Click for copyable input
Out[1]=
今度は,プロット領域の周りに囲み枠を描く.
In[2]:=
Click for copyable input
Out[2]=
軸のラベルを指定する.ラベルは,TraditionalFormのWolfram言語の出力として生成されるときと同じように表示される.ラベルの文字はダブルクォートでくくって指定することができる.
In[3]:=
Click for copyable input
Out[3]=
オプションは複数同時に使用でき,順不同である.
In[4]:=
Click for copyable input
Out[4]=
AspectRatioオプションの設定を変更するとグラフの全景が変わる.AspectRatioは縦幅を横幅で割った比として与えられる.デフォルト値は,長方形では最も見やすいといわれている比で,いわゆる,黄金比の逆数である.
In[5]:=
Click for copyable input
Out[5]=
Automatic内部アルゴリズムを使い最適値を探す
None特に指定しない
Allすべてを含める
True有効にする
False無効にする

オプションの一般的な設定値

自動設定でプロットを行うと, 軸と 軸のスケールが自動設定され,式の挙動で特に重要と思われる部分だけがプロットされる.もし,プロットする式の値が急激に増加する場合や,特異点が現れる場合は,局所的に式の値が大きくなりすぎて,その部分は自動的にプロット範囲から除外されてしまう.PlotRangeを指定することにより,プロットに入れたい 軸と 軸の範囲を正確に制御できる.

Automatic式の挙動で「重要」と思われる部分がプロットに含まれるように,割合大きな範囲が選択される(デフォルト時の設定)
Allプロット可能な全区間が選択される
{ymin,ymax} の下限と上限を指定する
{xrange,yrange} 区間と 区間を指定する

オプションPlotRangeの設定

PlotRangeを使い の区間を指定する. の極限をこのように指定すると,曲線の下の部分は表示されなくなる.
In[6]:=
Click for copyable input
Out[6]=

関数の曲線をなるべく滑らかにプロットできるように,Wolfram言語内部で調整が取られる.つまり,増減の激しい関数に対してはより多くのプロット点が使われる.通常,関数の取る形に応じて関数のサンプリングを「適応」させるが,上限はあり,それ以上の細かさで関数をサンプリングすることはできない.この上限は設定可能なので,必要ならば変更しておく.

において,は無限に増減を繰り返す.増減する区間において,それに見合った点数のサンプリングが試みられるが,サンプリング点は有限であるために関数の挙動が十分に再現されない.このため,曲線がところどころで切れてしまっている.
In[7]:=
Click for copyable input
Out[7]=

ここで重要なのは,プロットする関数は限られた点数までしかサンプリングできないので,必ずしも関数の特徴を再現できるとは限らない,ということである.Wolfram言語は適応的に関数をサンプリングするため,関心のある部分付近のサンプル数を増加させるが,それでも何かが足りないという可能性もある.もちろん,PlotPointsでプロット点数を増やしておき,もっと多くの点でサンプリングすることは可能である.ただし,PlotPointsを大きく設定すればするほど,曲線は滑らかにできるが,プロットする時間も長くなってしまうことになる.

オプション
デフォルト値
PlotStyleAutomatic曲線の描画スタイルを決めるグラフィックスプリミティブをリスト形式で指定する(「グラフィックス指示子とグラフィックスオプション」を参照のこと)
ClippingStyleNone曲線が省略されている場合に, 何を描画するか
FillingNone各曲線の下に挿入する塗り潰し
FillingStyleAutomatic塗り潰しに使用するスタイル
PlotPoints50関数をサンプリングする点の最小数
MaxRecursionAutomatic反復細分化が許される最大回数

Plot用オプション その2(注:これらはShowには使えない)

PlotStyleを使って,破線の曲線を指定する.
In[8]:=
Click for copyable input
Out[8]=
複数の関数をプロットするときは,リストの中のPlotStyle設定はそれぞれの関数に継続的に使われる.
In[9]:=
Click for copyable input
Out[9]=
PlotStyleにサブリストが含まれるときは,設定は合わせられる.
In[10]:=
Click for copyable input
Out[10]=
PlotRangeが曲線を切り取るように指定されている場合,デフォルトで何も表示されない.
In[11]:=
Click for copyable input
Out[11]=
ClippingStyleAutomaticに設定すると,曲線が切り取られた部分に破線が描画される.
In[12]:=
Click for copyable input
Out[12]=
ClippingStyleをリストに設定すると,下部と上部で切り取られた部分に対するスタイルが指定される.
In[13]:=
Click for copyable input
Out[13]=
曲線と 軸との間の塗り潰しを指定する.
In[14]:=
Click for copyable input
Out[14]=
塗り潰しは,グラフィックスの下等,任意の高さに拡張して指定することができる.塗り潰しの色は,オーバーラップするときは自動的に混ぜられる.
In[15]:=
Click for copyable input
Out[15]=
特定の塗り潰しを,最初の曲線にだけ使うよう指定する.
In[16]:=
Click for copyable input
Out[16]=
デフォルトではない塗り潰しスタイルを使い,最初の曲線から2つ目の曲線への塗り潰しを表示する.
In[17]:=
Click for copyable input
Out[17]=