matplotlib 基于颜色的图例

ars1skjm  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(173)

我的问题如下:
假设我有四个列表abcd。我想使用相同的径向网格R来绘制它们。由于某些原因,ab共享一个共同属性X,而cd共享一个共同属性Y。因此,我希望abcd分别以相同的颜色出现(绿色和蓝色),我只希望两个标 checkout 现在图例中:一个是绿色的,类似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()
smtd7mpg

smtd7mpg1#

您可以只标记****要在图例中显示的对象一次,而不是手动设置图例,如下所示。我还用更短的语法'-g'替换了color ='green',蓝色也是一样。

# 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()

替代方式绘图时不放置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])

相关问题