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

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引数で指定すると解決できます。

  1. Matplotlibで円の中に長方形をプロットする方法

    Matplotlibを使って円の中に長方形を描画したい場合、patchesモジュールが提供するRectangle()クラスとCircle()クラスを組み合わせることで簡単に実現できます。以下の手順に従ってください。手順figure()メソッドを使用して、新しい図を作成するか、既存の図をアクティブにします。add_subplot()メソッドで現在の図にサブプロット(軸)を追加します。Rectangle()クラスとCircle()クラスを使って、長方形と円のインスタンスを作成します。add_patch()メソッドで作成したパッチを軸に追加します。xlim()およびylim()メソッドを使用して、x

  2. Matplotlibでhist2dプロットにカラーバーを追加する方法

    Matplotlibのhist2dプロット(2次元ヒストグラム)にカラーバーを追加するには、colorbar()メソッドの引数にスカラーマッピング可能なオブジェクト(ScalarMappable)を渡します。 実装手順 NumPyを使ってxとyのデータポイントを作成します。 subplots()メソッドを使って、図とサブプロットを作成します。 hist2d()メソッドを使って、2次元ヒストグラムを描画します。 hist2dから返されるスカラーマッピングオブジェクトをもとに、colorbar()でカラーバーを作成します。 show()メソッドを使って、図を表示します。 コード例 import