1. ホーム
  2. python

matplotlib の凡例のためのタイトル

2023-07-24 07:12:25

質問

凡例にタイトルをつけるのはかなり冗長だと思うのですが、matplotlibを使って可能でしょうか?

以下は、私が持っているコードのスニペットです。

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

one = mpatches.Patch(facecolor='#f3f300', label='label1', linewidth = 0.5, edgecolor = 'black')
two = mpatches.Patch(facecolor='#ff9700', label = 'label2', linewidth = 0.5, edgecolor = 'black')
three = mpatches.Patch(facecolor='#ff0000', label = 'label3', linewidth = 0.5, edgecolor = 'black')

legend = plt.legend(handles=[one, two, three], loc = 4, fontsize = 'small', fancybox = True)

frame = legend.get_frame() #sets up for color, edge, and transparency
frame.set_facecolor('#b4aeae') #color of legend
frame.set_edgecolor('black') #edge color of legend
frame.set_alpha(1) #deals with transparency
plt.show()

label1の上に凡例のタイトルを表示させたいと思います。参考までに、こんな感じで出力されます。

どのように解決するのですか?

を追加します。 title パラメータをこの行に追加します。

legend = plt.legend(handles=[one, two, three], title="title",
                    loc=4, fontsize='small', fancybox=True)

また の公式ドキュメントを参照してください。 legend コンストラクタ .