Matplotlibの円グラフに実際の値を表示する方法
Matplotlibの円グラフでは、デフォルトでは各スライスの割合(%)が表示されますが、autopct 引数に関数を指定することで、元データの実際の値や任意のカスタム値を表示することができます。以下にその手順を紹介します。
- 図のサイズを設定し、サブプロット間および周囲のパディングを調整します。
- ラベル(labels)、値(fracs)、explode位置 のリストを作成し、値の合計を求めておきます。
- labels、fracs、explode を使って円グラフを作成し、autopct=lambda p: <実際の値への変換式> を指定します。
- 図を表示するには show() メソッドを使用します。
コード例
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
labels = ('Read', 'Eat', 'Sleep', 'Repeat')
fracs = [5, 3, 4, 1]
total = sum(fracs)
explode = (0, 0.05, 0, 0)
plt.pie(fracs, explode=explode, labels=labels,
autopct=lambda p: '{:.0f}%'.format(p * total / 100),
shadow=True, startangle=90)
plt.show()
仕組みの解説
autopct引数には文字列の書式だけでなく、関数を渡すことも可能です。この関数は円グラフの描画時に、Matplotlibが自動計算した各スライスのパーセンテージ(p)を受け取ります。上記の例では p * total / 100 を計算することで、パーセンテージを元の実際の値へと逆算しています。
たとえば、fracs の合計が13の場合、「Read」のスライスは全体の約38%ですが、この方法を使えば「5」という実際の値がラベルとして表示されます。「{:.0f}」の部分を変更すれば、小数点以下の桁数なども自由に調整できます。
出力結果

-
Matplotlibで目盛りラベルをすべて表示する方法
Matplotlibでグラフ上のすべてのラベル値を表示したい場合は、set_xticklabels() メソッドと set_yticklabels() メソッドを使用します。この記事では、具体的な手順とコード例を使って、その方法をわかりやすく解説します。実装の手順軸の目盛りとして使用できる数値のリスト(x)を作成します。subplot() 関数を使用して軸オブジェクトを取得します。subplot() は現在の図にサブプロットを追加するための便利な関数です。set_xticks メソッドと set_yticks メソッドを使い、手順1で作成したリスト x を指定して、それぞれX軸とY軸の目盛り位
-
Python MatplotlibでY軸の値(目盛りラベル)を指定する方法
PythonのMatplotlibでは、yticks()メソッドを使うことで、Y軸に表示する値や目盛りラベルを自由に指定できます。X軸の場合はxticks()を使用します。この記事では、具体的な手順とサンプルコードを通して、軸の目盛りをカスタマイズする方法を解説します。 Y軸の値を指定する手順 以下の手順で、Matplotlibのグラフに任意の目盛りラベルを設定できます。 numpyを使ってxおよびyのデータポイントを作成します。 軸に表示したい値として、文字列のリストを作成します。 xticks()メソッドとyticks()メソッドを使用し、それぞれX軸・Y軸の目盛りの位置とラベルを指定し