|
1.9.3 プロットの再表示と組合せ
一度プロットしたなら,いつでもそれを再表示できるようにプロット操作に関する情報がMathematica内部に保存される.このため,プロットを再表示するときは,必要なオプションだけを変更すればよい.

プロットの操作に使う関数
簡単なプロットをする.通常は,出力行に-Graphics-と表示される.これは,内部保持されるプロット情報を表している.
In[1]:= Plot[ChebyshevT[7, x], {x, -1, 1}]

Out[1]= 
1つ前に入力したプロットを再表示させる.
In[2]:= Show[%]

Out[2]= 
プロットの再表示を行う際にいくつかオプションの設定を変更してもよい.この例では,y軸の範囲を変更した.
In[3]:= Show[%, PlotRange -> {-1, 2}]

Out[3]= 
同じプロットをまた表示する.今度は,別のオプションを変更した.
In[4]:= Show[%, PlotLabel -> "A Chebyshev Polynomial"]

Out[4]= 
Showを入力するたびにオプション設定を変えてやることで,1つのプロットをいろいろな方法で見ることができる.最良なプロット仕様を見付けるには,このようにひとつひとつ設定条件を試しながら行うのも1つの方法である.
Showを使い複数のプロットを重ねて表示することもできる.プロットの軸スケールは同じでなくてもよい.Mathematicaが適切なスケールを自動選択し必要なプロット点が表示領域に入るように調整してくれる.
を 〜 でプロットする.プロットは,gj0の名前で内部保持される.
In[5]:= gj0 = Plot[BesselJ[0, x], {x, 0, 10}]

Out[5]= 
次に, を 〜 でプロットする.
In[6]:= gy1 = Plot[BesselY[1, x], {x, 1, 10}]

Out[6]= 
2つのプロットを1つに重ね合わせる.軸の範囲が自動的に調整されることに注意.
In[7]:= gjy = Show[gj0, gy1]

Out[7]= 
書式Show[ , , ... ]を使うと,複数のプロットを1つに重ね合わせることができる. また,GraphicsArrayを指定しておけば,複数のプロットをアレイ状に配列的に並べることもできる.

複数のプロットの一括表示
先にプロットした複数のプロットを並べて表示する.
In[8]:= Show[GraphicsArray[{{gj0, gjy}, {gy1, gjy}}]]

Out[8]= 
Showで並べて表示するときにオプションを指定すると,それは個々のプロットに対してでなく,全体に対して有効になる.
In[9]:= Show[%, Frame->True, FrameTicks->None]

Out[9]= 
個々のプロットの設定を一括で変更するには,このようにする.
In[10]:= Show[ % /. (Ticks -> Automatic) -> (Ticks -> None) ]

Out[10]= 
特に指定がない場合,GraphicsArrayを指定するとプロットとプロットの境界に狭い間隔がおかれる.この間隔は,書式GraphicsSpacing -> h, v を使ったオプション設定で変えることができる.ここで,hとvは,それぞれ,水平方向と垂直方向の間隔幅を表すパラメータである.hは,値を1とする水平軸範囲に対する水平間隔の割合で,vは垂直軸範囲に対する垂直間隔の割合を示す.
プロットの配列表示において,水平間隔は増やすが,垂直間隔は減らしてみる.
In[11]:= Show[%, GraphicsSpacing -> {0.3, 0}]

Out[11]= 
プロットすると,他の情報と一緒にプロットした点もリスト形式で保存される.Showを使うことで,これらの情報をもとに,プロットをいろいろな描画条件で再表示することができる.また,条件を変えても,もともとプロットした値が使われるので,例えば,オプション設定で最初に作ったプロットを部分的に拡大表示させ,Plotで使われた個々の標本点を確認する,というようなことも可能である.ただし,オプションPlotPointsを使ったプロット点数の指定は,Plotコマンドを指定したときだけに有効である.(Mathematicaでは,常に保持してある実際の点がプロットされる.平滑化した曲線やスプライン曲線は使われない.これは,数学のグラフィックスで誤った解釈を与えかねないからである.)
簡単なプロットを見てみる.
In[12]:= Plot[Cos[x], {x, -Pi, Pi}]

Out[12]= 
部分的に拡大表示させる.この解像度ならば,Plotコマンドで生成されたひとつひとつの区間線を見分けることができる.
In[13]:= Show[%, PlotRange -> {{0, .3}, {.92, 1}}]

Out[13]= 
|