Пытаясь создать пользовательскую легенду, я создаю массив пользовательских строк, из которых я хочу извлечь метки.
В поле для 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])]]
?
Я прошу прощения, если вопрос не имеет смысла. Я борюсь с тем, чтобы называть вещи своими именами (я не из тех, кого я знаю) ... Я могу попытаться уточнить, основываясь на вопросах, которые кто-либо поднимает по этому вопросу.