Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibで棒グラフの上にパーセンテージを表示する方法

Matplotlibで作成した棒グラフの各バーの上にパーセンテージ(数値)を表示するには、text()メソッドを使ってバーの上部にテキストを描画します。ここでは、その具体的な手順をコード例とともに解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • x・yのデータポイントを作成し、棒の幅を指定する変数widthを初期化します。
  • subplots()メソッドを使って、図(Figure)とサブプロット(Axes)を作成します。
  • x・yのデータポイントをもとに棒グラフを描画します。
  • 各バーのパッチを反復処理し、text()メソッドでバーの上に数値を配置します。
  • show()メソッドで図を表示します。

コード例

from matplotlib import pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

x = [1, 2, 3, 4, 5]
y = [3, 4, 2, 1, 3]

width = 0.35
fig, ax = plt.subplots()

pps = ax.bar(x, y, width, align='center')

for p in pps:
    height = p.get_height()
    ax.text(x=p.get_x() + p.get_width() / 2, y=height+.10,
        s="{}%".format(height),
        ha='center')

plt.show()

出力結果

Matplotlibで棒グラフの上にパーセンテージを表示する方法

コードのポイント

  • p.get_height():各バーの高さ(=データ値)を取得します。この値がそのままパーセンテージとして表示されます。
  • p.get_x() + p.get_width() / 2:バーの中央のx座標を計算し、ラベルを真ん中に配置できるようにしています。
  • y=height+.10:バーの上端から少し上の位置にテキストをずらすことで、バーと重ならないようにしています。
  • ha='center':テキストを水平方向の中央揃えにすることで、きれいに整列させます。

この方法を応用すれば、値に「%」を付けずにそのままの数値を表示したり、小数点以下の桁数をフォーマットして整えたりすることも簡単に行えます。

  1. Matplotlibで棒グラフのバーにテキストを表示する方法

    Matplotlibの棒グラフで、各バーの上にテキスト(数値やラベルなど)を表示したい場合は、text()メソッドを使用します。このメソッドを使うことで、グラフ上の任意の位置(x座標・y座標)を指定して、自由にテキストを配置できます。 実装の手順 x軸のラベル、y軸の値、そしてpercentage(パーセント値)のリストをそれぞれ作成します。 bar()メソッドを使って棒グラフを描画します。 zip()関数で3つのリストをまとめ、for文で反復処理しながら各バーの位置にテキストを配置します。 最後にshow()メソッドを呼び出して図を表示します。 コード例 import matplotli

  2. Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法

    Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で