Matplotlibのヒストグラムで各バーのカウント数を表示する方法
Matplotlibのヒストグラムで、各バーの上にカウント数(度数)を表示したい場合があります。これを実現するには、ヒストグラムの各バー(パッチ)を反復処理し、text()メソッドを使って値をバーの上に配置します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- ヒストグラムを描画するための数値データのリストを作成します。
- hist()メソッドを使用してヒストグラムを作成します。
- 返されるパッチ(patches)を反復処理し、各バーの中央のx座標とバーの高さ(y座標)を計算して、テキストを配置します。
- 図を表示するには、show()メソッドを使用します。
コード例
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
data = [3, 5, 1, 7, 9, 5, 3, 7, 5]
_, _, patches = plt.hist(data, align="mid")
for pp in patches:
x = (pp._x0 + pp._x1)/2
y = pp._y1 + 0.05
plt.text(x, y, pp._y1)
plt.show()
コードの解説
pp._x0とpp._x1は、それぞれバーの左端と右端のx座標を表します。この2つの平均値を取ることで、バーの中央位置が求められます。pp._y1はバーの高さ、つまりそのビンに含まれるデータのカウント数です。y = pp._y1 + 0.05とすることで、テキストがバーに重ならず、少し上に浮かせて表示されます。
出力結果

このコードを実行すると、各バーの中央上部に対応するカウント数が表示されたヒストグラムが出力されます。データの分布を視覚的に把握しながら、具体的な度数も同時に確認できるため、レポートやプレゼンテーション資料にも活用しやすい手法です。
-
Matplotlibで目盛りラベルをすべて表示する方法
Matplotlibでグラフ上のすべてのラベル値を表示したい場合は、set_xticklabels() メソッドと set_yticklabels() メソッドを使用します。この記事では、具体的な手順とコード例を使って、その方法をわかりやすく解説します。実装の手順軸の目盛りとして使用できる数値のリスト(x)を作成します。subplot() 関数を使用して軸オブジェクトを取得します。subplot() は現在の図にサブプロットを追加するための便利な関数です。set_xticks メソッドと set_yticks メソッドを使い、手順1で作成したリスト x を指定して、それぞれX軸とY軸の目盛り位
-
Matplotlibで棒グラフのバーにテキストを表示する方法
Matplotlibの棒グラフで、各バーの上にテキスト(数値やラベルなど)を表示したい場合は、text()メソッドを使用します。このメソッドを使うことで、グラフ上の任意の位置(x座標・y座標)を指定して、自由にテキストを配置できます。 実装の手順 x軸のラベル、y軸の値、そしてpercentage(パーセント値)のリストをそれぞれ作成します。 bar()メソッドを使って棒グラフを描画します。 zip()関数で3つのリストをまとめ、for文で反復処理しながら各バーの位置にテキストを配置します。 最後にshow()メソッドを呼び出して図を表示します。 コード例 import matplotli