Matplotlibは、Pythonを使ってデータを視覚化するためのライブラリです。
これまでNumPy、Pandasを使っていろんなデータを扱ってきましたが、そういったデータを利用した科学的な分析を2Dおよび3Dグラフィックで表示することができるライブラリがMatplotlibです。公式サイトはこちらです。
Matplotlibを使うとテータを簡単に図表にプロットすることができ、その図表にはラベルやテキストなどを入れて解説を入れることができます。図表もそれに関わるいろんな要素を制御することができますし、多くのフォーマットで出力したりもできるので、とてもカスタマイズ性が高いです。
これからMatplotlibの使い方を学んでいきますが、まずここでは導入の方法と簡単な基本操作に触れてみたいと思います。
Matplotlibをインストールする
まずはPythonを利用している環境の中に、Matplotlibライブラリをインストールする必要があります。
Anacondaの環境であればターミナルから次のコマンドを入力してインストールしましょう。
$ conda install matplotlib
あるいは、
$ pip install matplotlib
Anacondaを利用している環境であれば、すでにインストールされているかもしれません。インストールされていなければ、上のコマンド(condaの方がいいかな?)でインストールするか、Anaconda Navigatorからインストールしましょう。
Matplotlibをインポートする
Matplotlibを使うためには、他のライブラリ同様にインポートする必要があります。
インポートには、次のように、matplotlib.pyplotモジュールをpltという名前でインポートするのが一般的です。
import matplotlib.pyplot as plt
ここでは、jupyter notebookを使っていくのですが、このjupyter notebookを使っていく場合に限っては、次の表示も記述する必要があります。
%matplotlib inline
図表を表示するにはplt.show()コマンドを使うのですが、上の一文を追加入力することによって、jupyter notebook内に図を表示することができます。別のエディタを使用している場合は、図表が別のウインドウにポップアップする形で表示されるはずです。
これでMatplotlibを使う準備ができました。
Matplotlibの基本的な使い方
それでは簡単にMatplotlibの描画をやっていきましょう。
まず、ここで使う簡単なデータをNumPyを使って次のような形で用意してみます。
import numpy as np
x = np.linspace(0, 10, 11)
y = x ** 2
NumPyをインポートし、xとしてlinspace()を使って0から10までの範囲で等間隔に11個のデータを作ります。yとしてそのxの2乗のデータを作ります。
実行するとこうなります。
データ自体は、この程度ならリストを使ってそのまま作っても構いませんね。
では、このデータを使ってmatplotlibの図表の描画をしていきましょう。
matplotlibの基本コマンド
まずは、このデータを単純にグラフにする操作です。xとyのデータが対応しているグラフということになりますね。
グラフを表示するには次のように書きます。
plt.plot(x, y, 'red')
plt.xlabel('x軸のタイトル')
plt.ylabel('y軸のタイトル')
plt.title('グラフのタイトル')
plt.show()
グラフを描画するにはplot()にx, yそれぞれのデータを渡します。ここではグラフの色を’red’ に指定しました。色を指定しない場合は青系の色で表示されます。
グラフのラベルはx軸、y軸はそれぞれxlabel()、ylabel()で与えることができます。グラフのタイトルはtitle()を使います。
最後に、show()コマンドを記述して実行することでjupyter notebook内にグラフが描画されます。()
グラフが描画されるのが確認できました。
matplotlibの日本語化
なお、ここではラベルを日本語表示していますが、matplotlibをそのまま使っている場合、描画を実行すると文字化けすると思います。日本語化するにはこちらの方法で設定してみてください。
同じキャンバスに複数のグラフを描画する
上では1つのグラフを描画しましたが、同時に複数のグラフを並べて表示することもできます。ここでは同じデータを使ってx軸とy軸を入れ替えた2つのグラフを表示してみることにします。
複数のグラフを描画するにはsubplot()を使って、それぞれのグラフの位置を決めて表示します。次のようにして使います。
plt.subplot(1,2,1)
plt.plot(x, y, 'b--')
plt.subplot(1,2,2)
plt.plot(y, x, 'g*-');
subplot()にはそれぞれグラフを表示するエリアの行と列、そしてグラフを指定する番号を与えます。ここにはsubplot()が2つありますが、1行2列のエリアに1番目(左側)と2番目(右側)を指定するという意味になります。
それぞれ与えるデータのxとyを入れ替えているのがわかると思います。グラフの色の表示も単に線ではなく、破線と点と線をこのように指定しています。
表示するとこうなります。
グラフの色ですが、bが青、gが緑というのはわかりますね。blueとgreenです。
グラフを横に並べて表示してみましたが、縦にも表示できます。
subplot()に与えるグラフのエリアを2行1列にすると縦に表示できます。
次のように書き換えてみます。
plt.subplot(2,1,1)
plt.plot(x, y, 'b--')
plt.subplot(2,1,2)
plt.plot(y, x, 'y*-');
縦にグラフが並べて表示されました。
ここでは下側のグラフの色を黄色にしてみました。yellowのyを指定しています。
なお、こちらでは最後にshow()を使っていませんが、%matplotlib inlineの記述とjupyter notebookを使っているためです。本来はshow()を記述した方がいいでしょうね。
以上がMatplotlibを使ってのグラフの描画の基本的な操作です。
最後に
Matplotlibは、Pythonを使ってデータを視覚化するためのライブラリです。データ処理した科学的分析結果を簡単にいろんなグラフに描画することができます。
別のところでも簡単に速習しました。
ここではMatplotlibを使ってのグラフの描画の基本的な操作をしてみたわけですが、これからはMatplotlibのもっと細かい設定や操作に触れていこうと思います。