常规使用legend的方法

1. 自动检测

设置titlelabel标签,随后使用不带参数的legend函数也会自动显示(但不限于一种方式设置图形的label,只要设置了图形的label,使用legend函数会自动显示图例)

import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
ax.plot([1, 2, 3], [1, 2, 3], label='y = x')
ax.legend(loc='upper left', fontsize='large', title='linear function')
plt.show()

另一种方式(设置某个对象的label属性,可以是各种对象)

import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
# 必须得加逗号,不然line就是一个列表了
line, = ax.plot([1, 2, 3], [1, 2, 3])
# 结果是<class 'matplotlib.lines.Line2D'>
print(type(line))
# 设置途中的线条标签
line.set_label('y = x')
ax.legend(loc='upper left', fontsize='large', title='linear function')
plt.show()

  • 特别注意

通过在标签以下划线 - 开头的对象上使用标签,可以从自动图例元素选择中排除特定的图表元素。以下划线开头的字符串是所有图表元素的默认标签,因此如果在没有任何参数的情况下调用Axes.legend且没有手动设置标签,将不会绘制图例。例子如下:

import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
# 必须得加逗号,不然line就是一个列表了
line, = ax.plot([1, 2, 3], [1, 2, 3])
# 结果是<class 'matplotlib.lines.Line2D'>
print(type(line))
# 设置途中的线条标签
line.set_label('_y = x')
ax.legend(loc='upper left', fontsize='large', title='linear function')
plt.show()



2. 明确列出图例中的图表元素和标签

要完全控制哪些图表元素具有图例条目,可以分别传递一个图表元素的可迭代对象和一个图例标签的可迭代对象,例子如下:

  • 绘制sin,cos,线性函数三条曲线,并以明确列出图例中的图表元素和标签设置图例
import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
x = np.linspace(0, 10, 10000)
y = np.sin(x)
z = np.cos(x)
w = 0.01 * x
# 必须得加逗号,不然line就是一个列表了
sin_curve, = ax.plot(x, y, color='red', linewidth=2)
cos_curve, = ax.plot(x, z, color='blue', linewidth=2)
line, = ax.plot(x, w,color='green', linewidth=2) ax.legend([sin_curve, cos_curve, line], ['y = sin(x)', 'z = cos(x)', 'w = 0.01 * x'], title= 'some function')
plt.show()

另一种方法

import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
x = np.linspace(0, 10, 10000)
y = np.sin(x)
z = np.cos(x)
w = 0.01 * x
# 必须得加逗号,不然line就是一个列表了
sin_curve, = ax.plot(x, y, color='red', linewidth=2, label = 'sin')
cos_curve, = ax.plot(x, z, color='blue', linewidth=2, label = 'cos')
line, = ax.plot(x, w,color='green', linewidth=2, label = 'line') ax.legend(handles = [sin_curve, cos_curve, line], title= 'some function')
plt.show()

3. 容易造成混乱的一种写法

这种调用方式不被推荐,因为绘图元素与标签之间的关系只能通过它们的顺序隐式地确定,很容易混淆。要为一个Axes上的所有图表元素创建图例,请使用一个字符串的可迭代对象,每个字符串对应一个图例项。例如(下面是错误的实例):

import matplotlib as mlp
import matplotlib.pyplot as plt
import numpy as np fg, ax = plt.subplots()
x = np.linspace(0, 10, 10000)
y = np.sin(x)
z = np.cos(x)
w = 0.01 * x
# 必须得加逗号,不然line就是一个列表了
sin_curve, = ax.plot(x, y, color='red', linewidth=2)
cos_curve, = ax.plot(x, z, color='blue', linewidth=2)
line, = ax.plot(x, w,color='green', linewidth=2) # # 创建图例,使用字符串对应绘图元素的顺序,一定要对应,否则很容易出错
ax.legend(['sin', 'line', 'cos'], title= 'some function')
plt.show()

legend其他参数的设置

1. 位置设置

图例的位置可以通过 loc 参数进行设置。以下是一些常用的位置选项:

'upper left', 'upper right', 'lower left', 'lower right':将图例放置在对应角落。

'upper center', 'lower center', 'center left', 'center right':将图例放置在对应边的中心。'center':将图例放置在坐标轴中心。'best':在已定义的九个位置中,选择与其他元素重叠最小的位置。注意,对于大量数据的图表,此选项可能会降低绘图速度。

2. 图例盒子定位

除了位置,可以使用 bbox_to_anchor 参数来定位图例。以下是一些常见用法:

使用4元组 (x, y, width, height) 指定图例的盒子位置和大小。

使用2元组 (x, y) 指定图例的角落位置,以 loc 为基准。

3. 列数设置

如果图例中的条目过多,可以通过设置 ncols 参数来控制图例的列数,以便更好地排列条目。

4. 字体和标签颜色

可以使用 prop 参数来设置图例的字体属性。同时,通过 labelcolor 参数,可以调整标签的颜色,使其与线条或标记的颜色匹配。

5. 标记数量和大小

numpoints 参数设置图例中标记的数量。

scatterpoints 参数设置散点图图例中标记的数量。

scatteryoffsets 参数设置散点图标记的垂直偏移。

6. 图例背景和边框

可以通过以下参数设置图例的背景和边框样式:

frameon:是否绘制图例的边框。

fancybox:是否启用圆角边框。

shadow:是否在图例后面绘制阴影。

7. 对齐和标题

alignment:设置图例标题和条目框的对齐方式。

title:设置图例的标题。

8. 图例项顺序和拖动

reverse:设置是否反转图例条目顺序。

draggable:设置是否允许通过鼠标拖动图例。

9. 其他细节参数

此外,还有一些其他参数可以进一步细化图例的外观,如边距、间距以及标记的长度和高度等。具体可以查官方文档:

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html

legend的用法的更多相关文章

  1. matplotlib.legend()函数用法

    用的较多,作为记录 legend语法参数如下: matplotlib.pyplot.legend(*args, **kwargs) 几个暂时主要用的参数: (1)设置图例位置 使用loc参数 plt. ...

  2. layui 常见的表单元素

    第一步:引用文件 效果图(日期.文件上传在下面): <form class="layui-form" action=""> <div clas ...

  3. MATLAB实例:绘制折线图

    MATLAB实例:绘制折线图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 条形图的绘制见:MATLAB实例:绘制条形图 用MATLAB将几组不同的数 ...

  4. matplotlib---修改图例

    matplotlib.pyplot.legend(*args, **kwargs) 参考文献: [1]python - matplotlib.legend()函数用法解析 - qq_33221533的 ...

  5. matlab的legend用法

    用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的运动情况. legend函数的基本用法是: LEGEND(string1,string2,string ...

  6. label 和 legend标签的用法

    label 和 legend标签的用法 label标准用法: 一般浏览器都支持 一般而言,label标签位于表单元素的前面或者后面,为控件提供说明文字 <label for="user ...

  7. html5-fieldset和legend和keygen元素的用法

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  8. matplotlib笔记——legend用法

    rates = [0.01, 0.001, 0.0001] models = {} costs = np.array([[0.7, 0.9, 0.4, 0.6, 0.4, 0.3, 0.2, 0.1] ...

  9. Python中plt.plot()、plt.scatter()和plt.legend函数的用法示例

    参考:http://www.cppcns.com/jiaoben/python/471948.html https://blog.csdn.net/weixin_44825185/article/de ...

  10. matlab画图函数plot()/set/legend

    简单plot()/legend/XY轴范围axis 除了坐标轴信息外还可以添加其它的信息,如所画曲线的信息等:测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); ...

随机推荐

  1. CU002HModel matching query does not exist.

    问题描述:CU002HModel matching query does not exist. 问题分析:匹配的查询不存在.顾名思义就是什么数据都没有. 原因是get查询时没有结果会报错,所以有两个选 ...

  2. 【GiraKoo】Android监听屏幕尺寸变化通知

    [GiraKoo]Android监听屏幕尺寸变化通知 Android系统中存在多种情况可能导致屏幕尺寸发生变化.例如:横竖屏切换,虚拟按键,分屏,键盘弹出等. App有的时候需要了解屏幕的真实尺寸,D ...

  3. Python正则表达式完全指南

    本篇文章将深入探讨python的一项强大工具:正则表达式.正则表达式是一个强大的文本处理工具,可以用来匹配,搜索,替换和解析文本.我们将逐步展示如何在Python中使用正则表达式,包括其基本语法,常见 ...

  4. Aerospike架构设计与实现细节

    目录 1. 引言 2. 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍 2.3. 相关技术比较 3. 实现步骤与流程 3.1. 准备工作:环境配置与依赖安装 3.2. 核心模块实现 3 ...

  5. 获取邮箱(QQ、126、163)的客户端授权码

    获取QQ邮箱的客户端授权码 1.首先登录QQ邮箱(https://mail.qq.com),然后,点击"设置"按钮. 2.点击"账户"按钮,进入"账户 ...

  6. 1.5 编写自定位ShellCode弹窗

    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如 ...

  7. Spring容器获取Bean的9种方式

    1 前言 随着SpringBoot的普及,Spring的使用也越来越广,在某些场景下,我们无法通过注解或配置的形式直接获取到某个Bean.比如,在某一些工具类.设计模式实现中需要使用到Spring容器 ...

  8. Visual Studio C# 多环境配置 Web.config

    目录 添加解决方案配置 添加配置转换 添加应对的配置 Visual Studio 为多环境配置 Web.config 不同的环境,存在不同的配置,如:数据库连接字符串,通过多配置,方便做环境切换,配置 ...

  9. 【Nginx】Nginx访问静态资源

    Nginx访问静态资源 即通过IP:端口/文件名 访问文件实现. 修改Nginx配置 location / { # root html; # index index.html index.htm; a ...

  10. ZEGO即构科技荣获36氪【WISE2020中国新经济之王最具影响力企业】

    12月8-10日,36氪重磅新经济峰会WISE2020新经济之王大会将在北京举办.近日,2020新经济之王--中国最具影响力企业榜单陆续发布,全球云通讯服务商即构科技,凭借在企业服务领域硬核出色的技术 ...