Matplotlibで棒グラフのラベルに絵文字を表示する方法
Matplotlibでは、annotate()メソッドを使うことで、棒グラフの各バーの上部に絵文字をラベルとして簡単に配置できます。データの視覚化にアクセントを加えたい場合に便利なテクニックです。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 頻度を表すリストfreqsと、絵文字を含むラベルのリストlabelsを作成します。
- figure()メソッドを使用して、新しい図を作成します。
- bar()メソッドで棒グラフを描画します。
- annotate()メソッドを使って、各バーの上に絵文字をラベルとして配置します。
- show()メソッドで図を表示します。
コード例
import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
freqs = [7, 8, 5, 3, 6]
labels = ['😊', '😲', '😂', '😃', '😛']
plt.figure()
p1 = plt.bar(np.arange(len(labels)), freqs)
for rect1, label in zip(p1, labels):
height = rect1.get_height()
plt.annotate(
label,
(rect1.get_x() + rect1.get_width()/2, height+.05),
ha="center",
va="bottom",
fontsize=30
)
plt.show()実行結果
このコードを実行すると、5本の棒グラフが描画され、それぞれのバーの上部中央に対応する絵文字がフォントサイズ30で表示されます。絵文字はバーの高さより少し上の位置(height + 0.05)に配置されるため、バーと重ならずきれいに見えます。
なお、環境によっては絵文字が正しく表示されない場合があります。その場合は、Noto Color Emojiなどの絵文字対応フォントをインストールし、fontproperties引数で指定すると解決できます。
-
Matplotlibで円の中に長方形をプロットする方法
Matplotlibを使って円の中に長方形を描画したい場合、patchesモジュールが提供するRectangle()クラスとCircle()クラスを組み合わせることで簡単に実現できます。以下の手順に従ってください。手順figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドで現在の図にサブプロット(軸)を追加します。Rectangle()クラスとCircle()クラスを使って、長方形と円のインスタンスを作成します。add_patch()メソッドで作成したパッチを軸に追加します。xlim()およびylim()メソッドを使用して、x
-
Matplotlibでhist2dプロットにカラーバーを追加する方法
Matplotlibのhist2dプロット(2次元ヒストグラム)にカラーバーを追加するには、colorbar()メソッドの引数にスカラーマッピング可能なオブジェクト(ScalarMappable)を渡します。 実装手順 NumPyを使ってxとyのデータポイントを作成します。 subplots()メソッドを使って、図とサブプロットを作成します。 hist2d()メソッドを使って、2次元ヒストグラムを描画します。 hist2dから返されるスカラーマッピングオブジェクトをもとに、colorbar()でカラーバーを作成します。 show()メソッドを使って、図を表示します。 コード例 import