常规使用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. 数据分析缺失值处理(Missing Values)——删除法、填充法、插值法

    缺失值指数据集中某些变量的值有缺少的情况,缺失值也被称为NA(not available)值.在pandas里使用浮点值NaN(Not a Number)表示浮点数和非浮点数中的缺失值,用NaT表示时 ...

  2. drf——反序列化校验源码(了解)、断言、drf之请求和响应、视图之两个视图基类

    1.模块与包 # 模块与包 模块:一个py文件 被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件 包:一个文件夹下有__init__.py # 模块与包的导入问题 '' ...

  3. Isito 入门:为什么学 Istio、Istio 是什么

    1,Istio 概述 聊聊微服务设计 似乎用上 Kubernetes ,就是微服务系统了. 碰到很多人或公司盲目崇拜 Kubernetes ,一直喊着要上 Kubernetes,但是本身既没有技术储备 ...

  4. ffuf的使用

    ffuf:模糊测试 使用 ffuf 进行枚举.模糊测试和目录暴力破解 安装 https://github.com/ffuf/ffuf 建议:https://github.com/danielmiess ...

  5. flutter 的 in_app_web_view实现下载功能

    flutter与前端交互,利用in_app_web_view实现下载功能: 首先下载库,终端输入 flutter pub add flutter_inappwebview 之后导出 import 'p ...

  6. C++面试八股文:C++中,设计一个类要注意哪些东西?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第9面: 面试官:C++中,设计一个类要注意哪些东西? 二师兄:设计一个类主要考虑以下几个方面:1.面向对象的封装.继承及多态.2.big three ...

  7. Hive执行计划之什么是hiveSQL向量化模式及优化详解

    Hive开启向量化模式也是hiveSQL优化方法中的一种,可以提升hive查询速率,也叫hive矢量化. 问题1:那么什么是hive向量化模式呢? 问题2:hive向量化什么情况下可以被使用,或者说它 ...

  8. React后台管理系统 03全局样式scss

    安装scss样式依赖,使用命令 npm i --save-dev sass  --dev 会将依赖安装在devDependencies=>开发环境的依赖. 我们在src目录下的assets下创建 ...

  9. Kubernetes应用编排与管理 —— Deployment升级策略

    1.Deployment概述 Deployment 是 Kubernetes 控制器的一种高级别实现,它构建于 ReplicaSet 控制器之上,它可用于为 Pod 和 ReplicaSet 资源提供 ...

  10. 屏蔽CSDN百度广告

    最近在查询一些技术问题访问到CSDN时一直弹一些令人作恶的广告,说个特别的广告,脱发广告,特别有针对性程序员同胞们的共性问题,不过还是特别恶心,百度了一下,大家也特别反感,CSDN你真这么缺钱?废话不 ...