Matplotlibとは
Pythonはデータ分析や機械学習の分野でよく使われますが、その際に、データの特徴を把握するためにデータの可視化をよく行ないます。Matplotlib(マットプロットリブ)というPythonのライブラリは、データの可視化に重要な役割を果たしています。Matplotlibを使うことで、線グラフ、棒グラフ、ヒストグラムなどさまざまなグラフを簡単に生成できます。ここでは簡単なグラフの書き方を見ていきましょう。
Matplotlibの基本的な使い方
まず、簡単なグラフを描画するコードを見てみましょう。次のコードを実行してください。
グラフが描画されました。それでは、このコードの内容をみていきましょう。
まず1行目「import matplotlib.pyplot as plt」でMatplotlibというPythonの描画ライブラリからpyplotというモジュールを読み込んでいます。ここでは、as pltを使用することで、matplotlib.pyplotを省略した形で呼び出せるようにしています。
次に2行目と3行目で描画するデータを定義しています。仮のデータとして、xには1から5までの整数のリストを、yにはxの各要素の2倍の値を格納しています。
そして、4行目の「plt.plot(x, y)」でxとyの値を使用して線グラフを作成しています。ここで、plt.plot関数は、第一引数と第二引数をそれぞれx値とy値として取り、これらの点を連結する線を描画します。このコードであれば、(1,2)という点、(2,4)という点…というような点を、連結した直線を描画することになります。
最後に「plt.show()」を呼び出してグラフを表示します。
グラフの見た目を変更する
今度は、グラフの見た目をカスタマイズしてみましょう。タイトルや軸のラベル、線の色や形状など、いろいろな設定を変更できます。次の
plotメソッドはcolorやlinestyleという引数を取ることができます。colorはグラフの色を指定する引数で「red」や「blue」という値を取ります。(「#f00」といったカラーコードで指定することもできます。)linestyleは線の見た目を指定し、「solid」や「dashed」などの値を取ります。
pyplotモジュールには、plot関数以外にも、さまざまな関数が定義されています。titleはグラフのタイトルを指定し、xlabelとylabelはx軸とy軸に出力する文字を指定できます。
演習
複数のグラフのまとめて描画する
複数のグラフを同じプロットに描画したり、異なるプロットに描画することができます。以下の例では、2つのグラフを同じプロットに描画しています。
特に色を指定していないのに、2つめのグラフの色が変わっています。Matplotlibでは、色を指定せずに複数のグラフを描画すると、青、オレンジ、緑…というように、自動的にグラフの色を変えてくれます。
さまざまなグラフの描画
Matplotlibでは、いろいろなタイプのグラフを描画することができます。ここでは、棒グラフと散布図を紹介します。
棒グラフの描画
棒グラフは、カテゴリ別の数値データを比較するのに便利です。以下のコードは、年度別の売上を示す棒グラフを描画します。
bar関数は、第一引数にx軸のリスト、第二引数に各グラフの値を取ります。
散布図の描画
散布図は、2つの連続変数間の関係を視覚化するのに適しています。以下の例では、5人の身長と体重を散布図として描画します。
scatter関数は、第一引数にx軸の値のリスト、第二引数にy軸の値のリストを取ります。散布図として描画することで、「身長の高い人は体重も重い傾向にありそうだ」ということが視覚的にイメージしやすくなります。
グラフのカスタマイズ
既定の挙動では、Matplotlibはグラフの軸や目盛りを自動的に決定しますが、明示的に値を指定することもできます。以下の例では、グラフの軸の範囲を指定しています。先ほど描画した「身長と体重の散布図」について、縦軸を0から100、横軸を0から200の範囲に指定してみましょう。次のコードを実行してください。
すると、描画するデータは同じですが、軸の範囲が変わりました。pyplotモジュールのaxis関数を使うと、グラフの軸の範囲を指定することができます。axis関数は、第一引数にx軸の最小値、第二引数にx軸の最大値、第三引数にy軸の最小値、第四引数にy軸の最大値を取ります。
今度は目盛りを指定してみましょう。次のコードを実行してください。
x軸の目盛りが50区切りになっていることが確認できます。pyplotモジュールのxticks関数を使うと、x軸の目盛りを指定することができます。xticks関数は、第一引数に目盛りの値のリストを取ります。ちなみに、同じようにyticks関数を使うと、y軸の目盛りを指定することができます。
さて、ここまででMatplotlibの基本的な使い方を見てきました。データ分析とデータの可視化は、切っても切れない関係です。データ分析を行なう際には、Matplotlibを上手に使用することで、データの特徴を把握しやすくなります。