Legend 图例

Posted anhoo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Legend 图例相关的知识,希望对你有一定的参考价值。

1、添加图例

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> x = np.linspace(-3, 3, 50)
>>> y1 = 2*x + 1
>>> y2 = x**2
>>> plt.figure()
<Figure size 640x480 with 0 Axes>
>>> plt.xlim((-1, 2))
(-1, 2)
>>> plt.ylim((-2, 3))
(-2, 3)
>>> new_sticks = np.linspace(-1, 2, 5)
>>> plt.xticks(new_sticks)
([<matplotlib.axis.XTick object at 0x000001C38FA6F198>, <matplotlib.axis.XTick object at 0x000001C38F57F748>, <matplotlib.axis.XTick object at 0x000001C38F57F0F0>, <matplotlib.axis.XTick object at 0x000001C38F516D30>, <matplotlib.axis.XTick object at 0x000001C38F59D908>], <a list of 5 Text xticklabel objects>)
>>> plt.yticks([-2, -1.8, -1, 1.22, 3],
...            [r$really bad$, r$bad$, r$normal$, r$good$, r$really good$])
([<matplotlib.axis.YTick object at 0x000001C38F50E668>, <matplotlib.axis.YTick object at 0x000001C38F2DD828>, <matplotlib.axis.YTick object at 0x000001C38F57FBE0>, <matplotlib.axis.YTick object at 0x000001C38F59D6A0>, <matplotlib.axis.YTick object at 0x000001C38F59D438>], <a list of 5 Text yticklabel objects>)
>>> l1, = plt.plot(x, y1, label=linear line)
>>> l2, = plt.plot(x, y2, color=red, linewidth=1.0, linestyle=--, label=square line)
#legend将要显示的信息来自于上面代码中的 label. 所以我们只需要简单写下一下代码, plt 就能自动的为我们添加图例
#参数 loc=‘upper right‘ 表示图例将添加在图中的右上角.
>>> plt.legend(loc=upper right)
<matplotlib.legend.Legend object at 0x000001C38B7D8780>
>>> plt.show()

技术分享图片

2、调整位置和名称

如果我们想单独修改之前的 label 信息, 给不同类型的线条设置图例信息. 我们可以在 plt.legend 输入更多参数. 如果以下面这种形式添加 legend, 我们需要确保, 在上面的代码 plt.plot(x, y2, label=‘linear line‘) 和 plt.plot(x, y1, label=‘square line‘) 中有用变量 l1 和 l2 分别存储起来. 而且需要注意的是 l1, l2,要以逗号结尾, 因为plt.plot() 返回的是一个列表.

>>> plt.legend(handles=[l1, l2], labels=[up, down],  loc=best)
<matplotlib.legend.Legend object at 0x000001C38FA44630>
>>> plt.show()

技术分享图片

其中’loc’参数有多种,’best’表示自动分配最佳位置,其余的如下:

 best : 0,          
 upper right  : 1,
 upper left   : 2,
 lower left   : 3,
 lower right  : 4,
 right        : 5,
 center left  : 6,
 center right : 7,
 lower center : 8,
 upper center : 9,
 center       : 10,

 

以上是关于Legend 图例的主要内容,如果未能解决你的问题,请参考以下文章

R中的绘图函数产生图例而不调用legend()

Echarts中一个图表可以定义两个legend图例吗

seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的顶部top(多组图例)

seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的顶部且单行展开显示

seaborn将图例放置在图像外部并使用move_legend函数将图例(legend)放置在图像的底部(bottom)且单行展开显示

Matplotlib的一些小细节——Legend图例