Создание двух блоков легенды в al oop с python - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть код, в котором я создаю два разных поля легенды:

label_1 = 'ab'
label_2 = '12'

label_3 = 'cd'
label_4 = '34'

c1, = ax.plot(x1, y1, '-b', label=label_1)
c2, = ax.plot(x2, y2, '-r', label=label_2)

d1, = ax.plot(z1, k1, '--b', label=label_3)
d2, = ax.plot(z2, k2, '--r', label=label_4)

curves_1 = [c1, c2]
leg_1 = plt.legend(curves_1, [c.get_label() for c in curves_1], loc=1)
leg_1.set_title('sample_1')

curves_2 = [d1, d2]
leg_2 = plt.legend(curves_2, [d.get_label() for d in curves_2], loc=4)
leg_2.set_title('sample_2')

Можно использовать его, пока мой список данных короткий, но когда у меня длинный список, у меня есть сделать все oop. Нет проблем с секцией команд построения (хотя я думаю, что мне нужна альтернатива для "c1, =", "c2, =", "d1, =" и "d2, ="), но я не знаю, как изменить элементы легенды.

X=[x1, x2, z1, z2]
Y=[y1, y2, k1, k2]

label_list = ['ab', '12', 'cd', '34']

for i in range(len(X)):
    ax.plot(X[i], Y[i], label=label_list[i])

Тем не менее, мне нужны два блока легенды с той же информацией, что и раньше.

...