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

matplotlib

はじめに

この記事では、Pythonのmatplotlibライブラリを使用して集合棒グラフ(グループ化された棒グラフ)を作成する方法について解説します。また、棒グラフ上にデータ値を表示する方法についても説明します。

コード

解説

モジュールのインポート

データの生成

今回は3種類のデータを使用します。xは棒グラフの配置位置を表し、widthは棒グラフの幅を指定します。

棒グラフの表示

集合棒グラフを作成するには、各データセットの棒の位置をx – width、x、x + widthのようにずらして表示します。

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

set_ylabelでy軸のラベルを設定し、set_xticksでx軸の目盛り位置を指定し、set_xticklabelsでラベルテキストを設定します。ax.legendで凡例を表示できます。凡例の詳細な設定方法は以下のリンクで解説しています。

[matplotlib] 8. matplotlibで凡例を表示・カスタマイズする方法
matplotlibで凡例を追加する方法を解説。位置の調整、ラベルのカスタマイズ、複数凡例の表示、外枠の設定など、グラフを見やすく整理するための凡例活用テクニックを紹介します。

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

このコードは各棒の上端にデータ値をテキストとして表示します。棒の高さはget_height関数で取得できます。ax.bar()で作成したrects1は

という形式であり、各棒の高さを個別に取得するにはfor文で要素を展開する必要があります。

ax.annotateの'{}’.format(height)を使用することで、高さの数値がテキストとして表示されます。xyパラメータは各棒の上端座標を指定し、x座標と棒の幅はget_xとget_width関数で取得できます。の上端の座標であり、x座標と棒の幅はget_xとget_widthで取得できる。

xytext=(0, 1)とtextcoords=”offset points”の設定により、指定した座標の1ポイント上にテキストが配置されます。

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

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

参考

Grouped bar chart with labels — Matplotlib 3.1.2 documentation

コメント