Matplotlibは、Pythonと科学計算用ライブラリNumPyで扱ったデータのグラフを描画するライブラリです。
ここではMatplotlibの基本的な使い方を一気に学んでいきます。
Anacondaを使っているなら、Matplotlibはすでにインストールされているのではないかと思いますが、入っていなければこれまでと同様にターミナルからcondaコマンドやpipコマンドでインストールしましょう。
ここもjupyter notebookを使って学んでいきましょう。
Matplotlibの基本的なグラフ描画の方法を一気に学ぶ
jupyter notebookを起動したら、まずはMatplotlibをインポートしましょう。
import matplotlib.pyplot as plt
import numpy as np
NumPyで扱った数値を描画するので、合わせてインポートします。Matplotlib慣は例としてpltとして利用します。
単純なグラフを描画する
適当なデータを作って早速グラフを描画してみましょう。
import matplotlib.pyplot as plt
import numpy as np
plt.plot([1, 2, 3, 4, 5])
plt.ylabel('y')
plt.show()
plot()でデータのリスト使います。ylabel()でy軸に表示するラベルを設定します。show()でグラフが表示されます。
コードとの対応をしっかり理解しておきましょう。
x軸、y軸に対応したデータをグラフに描画する
先ほどはデータの値のみでしたが、今度はx軸とy軸にそれぞれ対応した値をグラフに描画してみます。
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.show()
plot()に横軸のデータ、縦軸のデータのリストをそれぞれ入れています。
x軸の値とy軸のデータがそれぞれ対応しているのがわかります。
グラフにマーカーをつける
描画されるグラフには線で書くだけでなく、マーカーで書くこともできます。上で使ったコードを書きかえてます。
/* Your code... */
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25], 'ro') plt.axis([0, 6, 0, 30]) plt.show()
2行目は横幅と縦幅を指定しているだけですが、1行目の最後に’ro’とあります。これは赤色で丸印をつけるの意味です。
実行するとこうなります。
赤い丸でデータがプロットされているのがわかります。
もう1つマーカーでグラフを書いてみましょう。
t = np.arange(0, 5, 0.2)
plt.plot(t, t*2, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
tは0から5までの間で0.2ごとのデータを作成しています。
plot()には、xの値、yの値、マーカーの指定を3つ並べています。1つ目はtの2倍の値を赤の点線で、2つ目はtの2乗を青の四角で、3つ目はtの3乗を緑の三角で描くという意味になっています。
それぞれの違いはわかりますね。
scatter()で散布図を描く
次は散布図を描いてみましょう。散布図を描くにはscatter()を使います。これに、x軸、y軸の値、大きさ、色などを指定して描きます。
コードの一例です。
x = np.random.rand(100)
y = np.random.rand(100)
colors = np.random.rand(100)
size = np.random.rand(100)*1000
plt.scatter(x, y, s=size, c=colors, alpha=0.7)
plt.show()
x,yの値をランダムで発生させています。それに使う色もランダム、散布の大きさもランダムで指定しました。透明度を0.7にしています。
bar()で棒グラフを描く
今度は棒グラフを描いてみましょう。
コード例で見ていきます。
obj = ('a', 'b', 'c', 'd', 'e', 'f')
y_position = np.arange(len(obj))
value = [3, 5, 1, 6, 2, 4]
plt.bar(y_position, value, alpha=0.5)
plt.xticks(y_position, obj)
plt.ylabel('y')
plt.title('Bar Chart')
plt.show()
objで6つの項目を用意しました。y_positionはobjの数を利用して、valueに対応する位置を示しています。bar()に横軸の位置とそれに対応するvalueを入れて、透明度を0.5にしています。xticksはx軸の目盛りです。y軸とタイトルのラベルを設定しています。
棒グラフが描けています。
pie()でパイチャート(円グラフ)を描く
次は円グラフを描いてみます。コードで見ていきましょう。
labels = (‘Pytho’, ‘PHP’, ‘Swift’, ‘Java’, ‘JavaScript’)
sizes = [25, 10, 20, 30, 15]
colors = [‘red’, ‘blue’, ‘yellow’, ‘orange’, ‘green’]
plt.pie(sizes, labels=labels, colors=colors, autopct=’%1.1f%%’, shadow=True)
plt.axis(‘equal’)
plt.show()