matplotlibでグラフ描画
データサイエンス界隈で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()
引数 | 説明 | 補足 |
---|---|---|
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()
引数 | 説明 | 補足 |
---|---|---|
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()
引数 | 説明 | 補足 |
---|---|---|
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")
引数 | 説明 | 補足 |
---|---|---|
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)
まとめ
今回は、主要なグラフの描き方をご紹介しました。
この他にも箱ひげ図やコレログラムなど、統計学でよく用いられるグラフも描画することが出来ますので、引き続き学んでいきたいと思います。