создание собственной легенды в matplotlib.pyplot - PullRequest
0 голосов
/ 13 марта 2020

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

В поле для l oop я создаю массив пользовательских имен, например:

custom_names=[custom_names, [Line2D([0],[0], color=colors[i], marker='None',label=filename[i][0:9])]]

Затем я пытаюсь использовать Legend , чтобы добавить это в качестве второй пользовательской легенды:

from matplotlib.legend import Legend
leg = Legend(ax, custom_names, loc='lower right')
ax.add_artist(leg)

, это приводит к ошибке:

leg = Legend(ax, custom_names, loc='lower right')
TypeError: __init__() missing 1 required positional argument: 'labels'

Как извлечь метки, использованные при создании массива custom_names, чтобы использовать его в функции Legend (?)? Что-то вроде:

leg = Legend(ax, custom_names, custom_names.get_label(), loc='lower right')

, но это не работает.

Фактически, если я печатаю custom_names, я получаю это:

print(custom_names)
[[[[], [<matplotlib.lines.Line2D object at 0x0000021232E72BC8>]], [<matplotlib.lines.Line2D object at 0x0000021232E83E08>]], [<matplotlib.lines.Line2D object at 0x0000021232E8CE08>]]

What is "inside" "объект ['<' matplotlib.lines.Line2D в 0x0000021232E72BC8 '>'], например? Как просмотреть или получить доступ к атрибутам, использованным при создании этого элемента массива, с помощью оператора

custom_names=[custom_names, [Line2D([0],[0], color=colors[i], marker='None',label=filename[i][0:9])]]

?

Я прошу прощения, если вопрос не имеет смысла. Я борюсь с тем, чтобы называть вещи своими именами (я не из тех, кого я знаю) ... Я могу попытаться уточнить, основываясь на вопросах, которые кто-либо поднимает по этому вопросу.

...