// // //

【Jupyter Notebook】Matplotlibで2次元グラフを描こう【その1:折れ線グラフと散布図】

matplotlib_00 Programming
matplotlib_00
この記事は約4分で読めます。

今回はJupyter Notebook上で有名はグラフィック用の標準ライブラリーである「Matplotlib」を使って、各種グラフを描いてみたいと思います。
「Matplotlib」は主に2次元のデータを可視化するためのライブラリーでオペレーションシステムを選ばないこと、詳細な設定ができること、多彩な出力形式に対応している定番の可視化ツールです。
まずは、初めに「折れ線グラフ」次に「散布」を描いてみたいと思います。Jupyter Notebookの実装がまだの方は以下のぼくの記事へのリンクから実装の方法を調べてくださいね。

LINKLINK:Jupyter Notebookの使い方解説【Python学習・データ解析】

Matplotlibについて

matplotlib_01
matplotlib_01
matplotlib_01
matplotlib_01
みゆきメダカ
みゆきメダカ

上のスクショのライン1は、標準ライブラリーの「matplotlib」にある「pyplot」モジュールをエイリアス名「plt」として読み込むコードだよ。特に「plt」とする必要はなく、任意の名前で大丈夫だけれど、習慣的にこのライブラリーはこの名前で読み込まれるので、これに従うことをお勧めするよ。

みゆきメダカ
みゆきメダカ

同じくライン2は、matplotlibに関するJupyter Notebookのマジックコマンドでコードの下に該当する図を表示するよ。

フィギュアとサブプロットについて

matplotlib_04
matplotlib_04

Matplotlibでグラフを描写するには、「フィギュア(フィギュアオブジェクト)」と「サブプロット」を作る必要があります。大まかに言って、フィギュアはサブプロットを描写する領域で、サブプロットはグラフを描写する領域です。サブプロットは少なくとも1つ作成する必要があります。

フィギュアにサブプロットを追加する方法は「Figure.add_subplot()」と「pyplot.subplots()」を利用する2つの方法があります。ここでは前者を用いた方法で説明します。

line_chart_05R
line_chart_05R
みゆきメダカ
みゆきメダカ

ライン4:figure()関数でFigureクラスのインスタンスを生成するよ。このインスタンスをフィギュアと呼ぶよ。
ライン6〜8:add_subplot()メソッドでサブプロットをフィギュアの指定された位置に配置するよ。ここでは(221)なので、2行2列の1番目の位置に配置するんだ。番号の振り方は、左上から始まり、右に順次移動して、右端に来ると次は一段下げて左から右へ移動します。

line_chart_06R
line_chart_06R

折れ線グラフの描き方

matplotlib_05
matplotlib_05

それでは、matplotlibを読み込んで、それに関するマジックコマンドを宣言して、ごく簡単な折れ線グラフ(実際には折れていませんが。)を描いてみよう。折れ線グラフはax.plot()メソッドを用いて描写します。

line_chart_01
line_chart_01
みゆきメダカ
みゆきメダカ

上のスクショのコードを入力して実行すると下のスクショの折れ線グラフがJupyter Notebook上に表示されるよ。

みゆきメダカ
みゆきメダカ

それじゃ、具体的にラインごとにコードを解説するよ。

ライン9の「dat = [0, 1]」のようにplotメソッドの引数が1つの場合は、与えられた引数はY値として設定され、X値は最小値=0、最大値=リストの要素数ー1の整数列が与えられるよ。

ライン8の「ax.plot(dat)」は折れ線グラフを描写します。

ライン10の「plt.show()」はブラフを表示します。

line-chart-02
line-chart-02
line_chart_03
line_chart_03
みゆきメダカ
みゆきメダカ

上のスクショでは、前述のコードにライン4の「plt.style.use('ggplot')

」を追記しているよ。このコマンドを追加すると下のスクショのように背景に細かいグリッドが表示されるよ。

line_chart_04
line_chart_04
line_chart_07R
line_chart_07R
みゆきメダカ
みゆきメダカ

X値とY値を両方を与えるには、第1、第2引数にX値、Y値を与えよう。

line_chart_08R
line_chart_08R

散布図の描き方

matplotlib_06
matplotlib_06

散布図はax.scatter()メソッドを用いて描写します。scatter()メソッドの第1、第2引数にそれぞれX値、Y値を与えます。

scatter_plot_01R
scatter_plot_01R
みゆきメダカ
みゆきメダカ

散布図も基本的には折れ線グラフの応用だよ。上のコーディングの例ではNumpyを使って乱数を発生させているよ。

scatter_plot_02R
scatter_plot_02R

まとめ

matplotlib_03
matplotlib_03

いかがでしたか。Jupyter NotebookでPythonとMatplotlibを使えば思いの外簡単にグラフが描けることが分かっていただけたかと思います。ご説明した例をもとに色々と修正を加えて、いろんな形を試してみてください。
それでは最後までお付き合いありがとうございました。さようなら。

コメント