[matplotlib] 56. plt.barによる集合棒グラフ

matplotlib

はじめに

matplotlibのplt.barで集合棒グラフを表示する方法について説明する。また、棒の上にデータを表示する方法についても説明する。

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

データの生成

3種のデータを用いる。xは棒グラフの生える位置であり、widthは棒グラフの幅となる。

棒グラフの表示

棒グラフのxの位置をそれぞれのデータでx – width、x、x + widthとしてずらして表示することで集合棒グラフとする。

軸ラベルの設定と凡例の表示

set_ylabelでy軸のラベルを設定し、set_xticksでx軸の目盛りの位置を設定し、set_xticklabelsでラベルをセットする。
ax.legendで凡例を表示する。凡例の設定方法については下記で説明した。

[matplotlibの使い方] 8. 凡例
matplotlibでは、凡例をplt.legend()またはax.legend()で表示できる。ここでは、その設定方法について説明する。

カラーバーの表示と目盛りの設定

このコードにより、各棒の上端のすぐ上にテキストを表示する。各棒の高さは、get_heightで取得する。ax.bar()であるrects1は

であり、各棒それぞれの高さを取得するには、for文で展開する必要がある。

ax.annotateの'{}’.format(height)で高さデータがテキストで表示されるようになる。
xyは各棒の上端の座標であり、x座標と棒の幅はget_xとget_widthで取得できる。

xytext=(0, 1)とtextcoords=”offset points”により、xyの1ポイント上にテキストが表示される。

参考

Grouped bar chart with labels — Matplotlib 3.1.2 documentation

コメント