Python-Matplotlib:定义单个图例条目

时间:2019-11-02 16:37:57

标签: python matplotlib legend legend-properties

当我绘制以下内容时:

plt.plot([0,1],[0,1],'g',label='Solid')
plt.plot([0,1],[.5,1],'b',label='Solid')
plt.plot([0,1],[1,0],'g--',label='Dashed')
plt.plot([0,1],[.5,0],'b--',label='Dashed')
plt.legend()

我得到这张图片:

enter image description here

对我来说,这是太多的图例文字。有谁知道,我如何才能将蓝色和绿色的实线以及蓝色和绿色的虚线连接起来,以将图例减少为两个具有绿色/蓝色(最好是一个在另一个顶部)和相应文本的条目? 谢谢您的帮助

2 个答案:

答案 0 :(得分:2)

查看legend()的可能签名,即legend(handles, labels)

Legend Tutorial中也有很好的描述。

line1,  = plt.plot([0,1],[0,1],'g',label='Solid')
line2,  = plt.plot([0,1],[.5,1],'b',label='Solid')
plt.plot([0,1],[1,0],'g--',label='Dashed')
plt.plot([0,1],[.5,0],'b--',label='Dashed')
plt.legend((line1, line2), ('green', 'blue'))
plt.show()

Output Image

答案 1 :(得分:1)

作为替代方案,请看一下这篇文章中的解决方案: Single legend item with two lines

虽然有点复杂