【すぐに使える】matplotlibでグループ化した棒グラフを簡単に描く関数とクラスを作ってみました。

Python入門
この記事は約3分で読めます。

Python の matplitlib はかなり強力なグラフ作成パッケージですが、グループ化した棒グラフを作るメソッドがありません。

実現方法としては、普通の棒グラフを少しづつ横にずらして描画することになるのですが、これが結構結構面倒です。

今回は、関数とクラスの2種類を作成してみました。

コピー&ペーストして張り付けていただければ、すぐに使えるようになっていますので、お困りの方は是非お使いください。

matplotlib について詳しく知りたい方は、こちらの記事をご一読下さい。

グループ化した棒グラフの描画サンプル

今回作成した棒グラフは下記の様になります。

グループ化した棒グラフ関数

「グループ化した棒グラフ関数」の仕様は次の通りです。

grouped_bar(X軸のラベル,y軸の値,数値の表示/非表示)

引数内容具体例
x軸のラベルX軸のラベルをリスト形式で指定[ ‘label1’ , ‘label2’ , ‘label3’ ]
y軸の値各棒グラフごとに「ラベル」と「値のリスト」を
タプルでまとめ、リストに登録したもの
( ‘chart1’ , [4,1,7,6,3] )
数値の表示/非表示Trueで棒の上部に値を表示、Falseで非表示True 、False

具体的なサンプルは次のようになります。

下記が実際の関数のソースコードです。

そのままコピー&ペーストして、適当にカスタマイズしてお使いください。

グループ化した棒グラフクラス

「クループ化した棒グラフクラス」は、専用のメソッドを使ってX軸のラベルとY軸の値を登録し、最後に showメソッドを呼ぶことで描画されます。

機能メソッド名引数
コンストラクタGroupedBar
(
isvalue=False,
groupwith=0.8,
barwidth=0.9,
location=’best’
)
値を棒の上に表示,
棒グラフグループの幅,
棒グラフの幅,
l凡例の表示位置
X軸ラベルの登録set_xlabel(xlabel)Xラベルのリスト
Y軸ラベルと
データの登録
add_bar(ylabel,values)Y軸のラベルのリスト,      
Y軸の値のリスト
グラフの表示show()

具体的な使用方法は次の通りです。

下記が実際のクラスのソースコードです。

そのままコピー&ペーストして、適当にカスタマイズしてお使いください。

まとめ

今回はPython の matplotlib を使って、グループ化した棒グラフが簡単に描画できる関数とクラスについて紹介しました。

グラフを描画することに重点を置き、再利用しやすいようソースコードをシンプルにしたかったので、背景色の設定や補助線などのデザイン的な処理は記載していません。

あとは必要に応じて継ぎ足して使っていただければ幸いです。

タイトルとURLをコピーしました