python,matplotlib中基于颜色的图例

时间:2018-10-03 18:14:07

标签: python matplotlib legend

我的问题如下:

想象一下,我有四个列表ValueError: Input contains NaN, infinity or a value too large for dtype('float64'). abc。我想通过使用相同的径向网格d来绘制它们。由于某些原因,Ra共享一个公共属性X,bc共享一个Y。因此,我想要da和{ {1}},b分别以相同的颜色(绿色和蓝色)出现,我只希望在图例中出现两个标签:一个为绿色,类似于X,另一个为蓝色,类似于Y。做一个简单的想法的方法吗?一个例子:

c

1 个答案:

答案 0 :(得分:1)

您可以仅标记一次要在图例中显示的对象,而不必按如下所示手动设置图例。我还用较短的语法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])