本記事では、Pythonのデータ可視化ライブラリであるmatplotlibを使用して、棒グラフの描画方法に焦点を当てました。まず、基本的なプロットの手法から始め、その後、グラフの見た目をカスタマイズする方法や複数のデータセットを重ねて表示する方法について解説しました。
matplotlibとは
プログラミング言語Pythonおよびその科学計算用ライブラリNumPyのためのグラフ描画ライブラリである。オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。描画したグラフを各種形式の画像(各種ベクトル画像形式も含む)として保存することもできる(Wiki参照)
matplotlib – Wikipedia
基本のプロット
まずは、棒グラフを描くための基本的なソースコードを示します。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
plt.bar(x, y)
plt.show()
xとyの同じインデックスつまり(1,1)、(2,8)、(3,3)、(4,6)、(5,5)にプロットされています。
見た目のカスタマイズ
棒グラフの見た目をカスタマイズすることもできます。以下のコードでは、棒自体の太さの変更と凡例を設定しています。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 8, 3, 6, 5]
plt.bar(x, y, label='test', width=0.4)
plt.legend()
plt.show()
Tips:主要なカスタマイズキーワード
棒グラフ作成時に使用できる引数オプションが非常に多くあります。が必要最低限テーブルにまとめた分をおさえて記載します。
kywd | 入力例 | 備考 |
---|---|---|
x,y | [1,2,3,4,5] または 事前に定義したlistなど | array形式のもの ※必須 |
linewidth | linewidth=5 | 枠線の太さ |
edgecolor | edgecolor=”r” | 枠線の色 色名や16進数、RGBでの指定が可能 |
color | color=”red” または color=”#FFFF00″ または color=(1.0,0,1.0) | 棒の色 色名や16進数、RGBでの指定が可能 |
width | width=”s” | 棒の太さ |
xerr | xerr=0.5 | X方向エラーバーの範囲 |
yerr | yerr=0.5 | Y方向エラーバーの範囲 |
bottom | bottom=積み上げるデータ | 積み上げ用データ |
label | label=”label1″ | 凡例名 |
色見本
color example code: named_colors.py — Matplotlib 2.0.2 documentation
見た目のカスタマイズ(目盛り線)
以下のコードでは、グリッド線を細かく指定しています。
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 8, 3, 6, 5] plt.bar(x,y,label='test',width=0.4) plt.legend() plt.grid(True) #目盛り線 plt.title("TEST GRAPH") #グラフタイトル plt.xlabel("X-label") #X軸ラベル plt.ylabel("Y-label") #Y軸ラベル plt.show()
複数のデータセットを重ねて描画
複数のデータセットを一つのグラフに重ねて表示することも可能です。また、複数のグラフを上下に並べた配置することも可能です。以下のコードでは、二つのデータセットを折れ線グラフと散布図と棒グラフとして描画しています。
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 8, 3, 6, 5] y2 = [8, 2, 4, 3, 7] plt.subplot(2,1,1) plt.bar(x,y,label='test',width=0.4,align="center") plt.bar(x,y2,label='test2',bottom=y,width=0.4,color="green") plt.plot(x,y,label='test3') plt.title("TEST GRAPH") #グラフタイトル plt.xlabel("X-label") #X軸ラベル plt.ylabel("Y-label") #Y軸ラベル plt.legend() plt.subplot(2,1,2) plt.scatter(x,y,label='test4',s=30) plt.grid(True) #目盛線 plt.title("TEST GRAPH2") #グラフタイトル plt.xlabel("X-label2") #X軸ラベル plt.ylabel("Y-label2") #Y軸ラベル plt.legend() plt.tight_layout() plt.show()
なお、折れ線グラフと散布図についてはそれぞれこちらの記事を参考にしてください。
まとめ
matplotlibを使用して棒グラフを描く方法をまとめます。
- matplotlibはPythonのグラフ描画ライブラリであり、データの可視化に利用される。
- 棒グラフを描く際には、bar()関数を使用する。
- プロットの見た目を変更するには、labelやwidthなどの引数を調整する。
- グラフ全体の見た目を変更するには、grid()やtitle()、xlabel()、ylabel()などの関数を使用する。
以上がmatplotlibを使用して棒グラフを描く方法についての解説です。
コメント