matplotlibでグラフ描画

f:id:monozukuri-bu:20200528114409p:plain

データサイエンス界隈でpythonのよく使うライブラリと言えば、numpy, pandas, matplotlibです。

今回はその matplotlib でもとりわけよく利用するグラフを描画する部分に着目し、どんなことができるのかをまとめました。

インポート

グラフ描画のためにmatplotlibを使用する場合、以下のようにインポートすることが多いです。

import matplotlib.pyplot as plt

・matplotlib
 今回解説するライブラリです。
 このライブラリを使ってグラフを作っていきます。

・pyplot
 matplotlib内のグラフ描画モジュールです。

・plt
 matplotlib.pyplotに別名をつけています。
 慣例的に、pltと名付けることが多いです。

折れ線グラフ

線グラフを描画する場合にはplot()を使用します。

plt.plot(X, Y, ls='-',lw='1', color='b',marker = '+',label='ice_sales')
plt.legend()
plt.show()

f:id:monozukuri-bu:20200528115710p:plain:w480

引数 説明 補足
X X軸 必須項目
Y Y軸 入力しない場合データ数になります。
label 凡例 plt.legend()を付けないと表示されません。
color 線の色 様々な指定方法が用意されている。
・アルファベット1文字('b', 'g', 'r', 'c', 'm', 'y', 'k', 'w')
・RGB+透過度αで指定((0.1, 0.2, 0.5, 0.3))
・名称で指定("orange", "pink", …)
参考:https://matplotlib.org/api/colors_api.html
ls 線の種類 例)'-' , '--', '-.' , ':' , 'steps'
lw 線の太さ デフォルトは1.0
marker マーカー形状 例)'+' , ',' , '.' , "o", '1' , '2' ,'3' ,'4'
散布図

散布図を記載する場合にはscatter()を使用します。

plt.scatter(data_frame.high_temp, data_frame.ice_payment,s=20, marker='o', cmap='jet',c=data_frame.ice_payment)
plt.colorbar()
plt.show()

f:id:monozukuri-bu:20200528122312p:plain:w480

引数 説明 補足
X X軸 必須項目
Y Y軸 必須項目
c X,Yの値も指定できます。
s サイズ デフォルト値:20
marker マーカー形状 デフォルトはo
cmap カラーマップ plt.colorbar()が必要
円グラフ

円グラフを描画する場合にはpie()を使用します。

x = numpy.array([400, 400, 600, 800, 200])
colors = ["yellow", "red", "blue", "green", "orange"]
ex = numpy.array([0.2, 0, 0, 0, 0])
label = ["Carbonara", "Arabian", "Pescatore", "Genovese", "Peperoncino"]
plt.pie(x,labels=label,explode = ex,startangle=90,colors=colors,explode = 0.2)
plt.show()

f:id:monozukuri-bu:20200528122503p:plain:w480

引数 説明 補足
X X軸 この値だけでも成立します。
label ラベル Xの値毎にラベルを張ります。
colors Xの値毎に色を設定します。
explode 指定したXの値を円の中心から指定値だけ離して表示 サンプルは0.2離した状態です。
棒グラフ

棒グラフを描画する場合にはbar()を使用します。

X = numpy.array([1, 2, 3, 4, 5])
Y = numpy.array([400, 400, 600, 800, 200])
Y2 = numpy.array([400, 400, 600, 800, 200])
colors = ["yellow", "red", "blue", "green", "orange"]
label = ["Carbonara", "Arabian", "Pescatore", "Genovese", "Peperoncino"]
plt.bar(X, Y,width = 0.8 , color =colors,tick_label = label,linewidth= 1,edgecolor="#000000")

f:id:monozukuri-bu:20200528122741p:plain:w480

引数 説明 補足
X X軸 必須項目
Y Y軸 必須項目
width 棒グラフ幅 デフォルトは0.8
tick_label X軸ラベル 設定しない場合はX軸が表示されます。
color 棒の色を設定します。
linewidth 枠線サイズ 設定することによって、枠線を付けることができます。
edgecolor 枠線色 colorと同様で配列型での指定も可能です。
bottom 棒グラフの下の値 例えば、100にするとすべてのY軸の始点が100になります。また、積み上げグラフ(以下参照)を作成する場合に使われます。
積み上げグラフ

パラメータのbottomに下の棒グラフのY値を入れることによって、上にグラフを積み上げることが可能です。
先ほど出力した棒グラフに対して積み上げたパターンが以下です。

X = numpy.array([1, 2, 3, 4, 5])
Y = numpy.array([400, 400, 600, 800, 200])
Y2 = numpy.array([600, 600, 400, 200, 800])
colors = ["yellow", "red", "blue", "green", "orange"]
label = ["Carbonara", "Arabian", "Pescatore", "Genovese", "Peperoncino"]
plt.bar(X, Y,width = 0.8 , color =colors,tick_label = label,linewidth= 1,edgecolor="#000000")
plt.bar(X, Y2,bottom=Y)

f:id:monozukuri-bu:20200528122820p:plain:w480

まとめ

今回は、主要なグラフの描き方をご紹介しました。
この他にも箱ひげ図やコレログラムなど、統計学でよく用いられるグラフも描画することが出来ますので、引き続き学んでいきたいと思います。