Спасибо за ответ ImportanceOfBeingErnest, я немного обновляю его решение для генерации текста в обработчике легенды:

ользуюFontAwesome На моей диаграмме каждая точка данных представляет собой символ шрифта FontAwesome, отображаемый в виде значка. Поэтому в легенде я хотел бы использовать текст (символы в FontAwesome) для описания элементов.

Код, который я использую, выглядит так:

from matplotlib.patches import Patch
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

ax = plt.gca()
ax.axis([0, 3, 0, 3])
prop = fm.FontProperties(fname='FontAwesome.otf', size=18)
ax.text(x=0, y=0, s='\uf1c7', color='r', fontproperties=prop)
ax.text(x=2, y=0, s='\uf050', color='g', fontproperties=prop)

plt.legend(handles=[Patch(color='r', label='label1'), Patch(color='g', label='label2')])

И сюжет похож на:

Поэтому я хочу заменить цветную полосу в легенде на те же значки, что и на графике.

Дескриптор, который я использую, представляет собой список патчей. Но я обнаружил, что трудно добавить текст в патч. Я обнаружил, что есть отличное решение добавить картинку в легенду здесь:Вставьте изображение в легенду Matplotlib

Я попытался с помощью TextArea заменить BboxImage в этом ответе, но он не работает, и TextArea не поддерживает свойства шрифта, такие как axis.text.

Так можно ли использовать текст вместо маркеров в легенде?

Ответы на вопрос(2)

Ваш ответ на вопрос