Можно ли итеративно создавать записи легенды с помощью нескольких вызовов функции построения графика?Python

Программы на Python
Ответить
Anonymous
 Можно ли итеративно создавать записи легенды с помощью нескольких вызовов функции построения графика?

Сообщение Anonymous »

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

Код: Выделить всё

import numpy as np
import matplotlib.pyplot as plt

def plot(x, y, ax, col, group, **kwargs):
hline, = ax.plot(x, y, 'k--', color=col)
hpatch = ax.fill_between(x, y+10, y-10, color=col, alpha=0.5)
ax.legend([(hline, hpatch)], [f"group {group}: Mean + interval"])

fig, ax = plt.subplots()
x = np.linspace(1, 100, 100)
plot(x, x, ax, "C0", 1)
plot(x, x+30, ax, "C1", 2)
plot(x, x+60, ax, "C2", 3)
Изображение
Обратите внимание на наличие только последней (группы 3) записи в легенде.
Есть ли способ включить в легенду все группы линий/путей, чтобы (в данном случае) в легенде было 3 элемента?
Бонусные баллы, если это можно полностью обработать с помощью функции построения графика, избегая необходимости передавать дескрипторы из функции построения графика.
Этот вопрос не касается нескольких отдельных легенд.>

Подробнее здесь: https://stackoverflow.com/questions/749 ... -plot-func
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»