Цветовая легенда в питоне, matplotlib - PullRequest
0 голосов
/ 03 октября 2018

Мой вопрос звучит так:

Представьте, что у меня есть четыре списка a, b, c, d.Я хочу построить их, используя ту же радиальную сетку R.По какой-то причине a, b имеют общее свойство X, а c, d - Y. Поэтому я хочу, чтобы a, b и c, d отображались в одном цветесоответственно (зеленый и синий), и я просто хочу, чтобы в легенде появились две метки: одна зеленая и напоминающая X, а другая синяя и напоминающая Y. Есть идеи простого способа сделать это?Пример:

import matplotlib.pyplot as plt

a =[2,4,6,8,10]
b =[3,6,9,12,15]
c =[1,4,9,16,25]
d =[1,8,27,64,125]
R =[0,1,2,3,4]

plt.plot(R,a,color ='green')
plt.plot(R,b,color ='green')
plt.plot(R,c,color ='blue')
plt.plot(R,d,color ='blue')
plt.legend('blue'= X,'green'=Y)
plt.show()

1 Ответ

0 голосов
/ 03 октября 2018

Вы можете пометить только объектами, которые вы хотите отобразить в легенде, вместо того, чтобы вручную устанавливать легенды, как показано ниже.Я также заменил color ='green' более коротким синтаксисом '-g', то же самое для синего цвета.

# Your imports and data here

plt.plot(R,a,'-g', label='X')
plt.plot(R,b,'-g')
plt.plot(R,c,'-b', label='Y')
plt.plot(R,d,'-b')
plt.legend(fontsize=18)
plt.show()

enter image description here

Альтернативный способ Без указания label='X' и label='Y' при построении

leg = plt.legend(['X', 'Y'], fontsize=18)
colors=['green', 'blue']

for i, j in enumerate(leg.legendHandles):
    j.set_color(colors[i])
...