Mathematicaの使い方講座 ④グラフの作り方

こんにちは、Mathematica歴3年の筆者です。

当記事では超初心者向けにMathematicaの使い方をわかりやすく解説しています。

前回の記事ではFor構文について解説しました。

今回の記事では「グラフの作り方」について学んでいきたいと思います。

リストのグラフ化、関数のグラフ化、グラフの重ね書き、グラフの見た目の変更などを学んでいきます。

それではどうぞ。

手始めにリストをグラフ化してみましょう。

使用するリストは下記のコードで生成して下さい。

リアルなデータ感を出すために「RandomReal」を使用して「-5」から「5」までの乱数を生成し、ノイズとして加えています。

また「SeedRandom」を使用して乱数のシードを指定してやることで、常に同じ「data」が得られます。

ちなみに「(*コメント*)」の形でコードの中に「コメント」を残すことができます。

「コメント」の部分はコードとして読み込まれないため、後で見返した時のためにきちんとコメントを残しておきましょう。

「data」の中身を確認してください。

以下のように「float型」のリストになっています。

この「data」をグラフで表してみましょう。

ListPlot」という関数を使用することで簡単にリストをプロットしてグラフ化できます。

上記ではy座標のリストだけを与えたため、x座標は自動で「1, 2, 3,,,,,,」と設定されました。

しかし通常は、x座標とy座標を指定してグラフを作りたいケースが多いです。

下記公式サイトを見てみると、x座標とy座標を指定してグラフを作るためには「ListPlot」の引数を「{{x1,y1},{x2,y2},,,,,,{xn,yn}}」の形にしてやれば良いということがわかります。

試しにx座標が「{0.1, 0.2, 0.3,,,,,,, }」のリストで、y座標が先程の「data」のグラフを作成してみましょう。

筆者の考えたコードは以下の通りです。

きちんとx座標が指定した通りになっています。

ここで転置を行う関数である「Transpose」を新しく使用しました。

今回の場合、「Transpose」によって「{{x1, x2,,,, xn}, {y1, y2,,,, yn}}」を「{{x1,y1},{x2,y2},,,,,,{xn,yn}}」の形に変換しています。

今後よく使う関数ですので覚えておいてください。

2, 関数をグラフ化して重ね書きする

続いて関数をグラフ化してみましょう。

関数のグラフ化は「Plot」という関数を使用することで簡単に実行できます。

「Plot」関数の第1引数に関数形を指定し、第2引数にxの範囲を指定してください。

例えば「y = 5x + 5」を「xが0から10の範囲」で表示するコードは以下の通りです。

三角関数も表示できます。

また、グラフを重ね書きしたい場合は「Show」を使用します。

「Show」の引数にグラフを指定することで、複数のグラフを1つのグラフにまとめて表示できます。

また、「Show」を使用すればリストのプロットと関数を同時に表示することも可能です。

3, グラフの見た目を変更する

次にグラフの見た目を変更してみましょう。

例えば「ListPlot」の見た目を変更する方法は、「ListPlot」の公式サイトから「詳細とオプション」をクリックして調べることができます。

「詳細とオプション」をクリックして中身を見ていくと、下図のように変更可能なオプションの一覧を見ることができます。

試しに「AspectRatio」と「Joined」と「PlotStyle」を変更してみましょう。

上図のようにグラフの見た目を変更することができました。

ちなみに上記コードで「→」となっているのは「->」で記述できます。

筆者がよく使用するオプションをランキング形式で以下にまとめておきます。

1, PlotRange:x軸とy軸の範囲を変更する。

2, PlotStyle:線の色や太さ、点の大きさなど変更する。

3, AspectRatio:グラフの縦横比を変更する。

4, ImageSize:グラフの大きさを変更する。

5, PlotLabel:グラフの名前を変更する。

6, Frame:枠を書くかを指定する。筆者は「True」にしている。

7, FrameLabel:枠があるとき、x軸とy軸の名前を変更する。

8, LabelStyle:x軸とy軸の名前の大きさやフォントなどを変更する。

9, FrameStyle:枠があるとき、枠の太さなどを変更する。

10, AxesOrigin:x軸とy軸の交点を変更する。

11, Joined:点と点を線で繋げるかを指定する。

実際にこれらのオプションを使ってグラフの見た目を変更してみた結果は以下の通りです。

上記コードをコピペできるように以下に載せておきます。

グラフを書く際にテンプレとして使用すると良いかと思います。

「Show」を使用してグラフを重ね書きする際にも同じオプションを使用することができます。

だだし、「AspectRatio」や「ImageSize」といったオプションは、「ListPlot」や「Plot」の引数ではなく「Show」の引数として指定してください。

「ListPlot」や「Plot」の引数で「AspectRatio」や「ImageSize」をそれぞれ指定してしまうと、「Show」でまとめて表示する際にどの「AspectRatio」や「ImageSize」を使用すればいいのか混乱しまうためです。

筆者の作ったコードは以下になります。

上記コードをコピペしたい場合は以下を使用して下さい。

第4回の「グラフの作り方」は以上になります。お疲れ様でした。

次回は「フィッティング」について解説したいと思います。