matplotlib fig.legend()常用参数 包括位置调整和字体设置等

一、四种方法

legend()
legend(handles, labels)
legend(handles=handles)
legend(labels)

1 legend()

labels自动通过绘图获取Automatic detection of elements to be shown in the legend

# 第一种方法
ax.plot([1, 2, 3], label='Inline label')
ax.legend()
# 第二种方法
line, = ax.plot([1, 2, 3])
line.set_label('Label via method')
ax.legend()

2 legend(handles, labels)

明确列出(Explicitly listing the artists and labels in the legend

ax.legend([line1, line2, line3], ['label1', 'label2', 'label3'])

3 legend(handles=handles)

只列出handlesExplicitly listing the artists in the legend

line1, = ax.plot([1, 2, 3], label='label1')
line2, = ax.plot([1, 2, 3], label='label2')
ax.legend(handles=[line1, line2])

4 legend(labels)

只列出labels,不推荐,因为绘图元素和标签之间的关系仅通过它们的顺序来隐含,并且很容易混淆。

ax.plot([1, 2, 3])
ax.plot([5, 6, 7])
ax.legend(['First line', 'Second line'])

二、重要参数

1 handlessequence of Artist, optional

要添加到图例中的绘图元素。

A list of Artists (lines, patches) to be added to the legend.

2 labels list of str, optional

绘图元素旁边的标签。

A list of labels to show next to the artists.

3 loc (default: 'best'**)

控制图例的位置(当设置图例的位置时,先设置这个参数!!!)

在这里插入图片描述
在这里插入图片描述

4 bbox_to_anchor

2-tuple或者4-tuple。一般我们使用2-tuple
loc一起使用的控制legend的位置框,该参数能够进行图例任意位置的调节
**注意:bbox_to_anchorloc一起使用!

如果是4-tuple, 分别表示(x, y, width, height)

x表示横轴,x=0是最左侧

y表示y轴,y=0是最下侧

width表示宽度

height表示高度

一个例子:

# 
loc='upper right', bbox_to_anchor=(0.5, 0.0, 0.5, 0.5)

如果是2-tuple, 分别表示(x, y)

注意:当使用loc=(x,y)时,x, y并不是轴域中实际的x, y的值,而是将x轴, y轴分别看成1,

即:(x/(x_max-x_min), y/(y_max-y_min))(归1处理);

x越大越向右

y越大越向上

一个例子:

# 如果不设置loc,默认将图例的【左下角】放在图的(0.5, 0.5)
bbox_to_anchor=(0.5, 0.5)# 如果设置了loc
# 将图例的右上角点放在图的(0.5, 0.5)的位置【这个很重要】
loc='upper right', bbox_to_anchor=(0.5, 0.5)
# 将图例的右上角点放在图的(0.5, 0.5)【这个很重要】
loc='upper left', bbox_to_anchor=(0.5, 0.5)

5 prop None or FontProperties or dict

设置图例的字体属性,一般用字典最方便

prop={‘weight’: ‘bold’, ‘size’: 12}

6 ncols int, default: 1

图例的列数

7 markerfirst bool, default: True

如果为True,则图例标记将放置在图例标签的左侧。

如果为False,图例标记将放置在图例标签的右侧。

8 frameon default: True

是否在图例外画框

9 mode {“expand”, None}

如果是"expand",图例将水平展开以填充轴区域(如果定义图例的大小,则为bbox_to_anchor)。

总结

1 多个子图共用一个图例使用fig.legend()

2 多个子图【每一个图使用一个图例】使用ax.legend()

3 位置大调用loc

4 利用**bbox_to_anchor** 可随意设置图例的位置【图里或者图外都可以】

学习链接:

  • https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
  • matplotlib 到底该如何控制legend的位置之一? - 知乎 (zhihu.com)
  • Matplotlib 多个子图使用一个图例_matplotlib子图共用图例_Mepleleo的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/30645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis过期键删除策略

如果一个键过期了,那么它什么时候会被删除呢? 这个问题有三种可能的答案,它们分别代表了三种不同的删除策略: 1.定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时…

Samba在Windows 11的网上邻居中不能显示

Centos 7 上的Samba服务器搭建好。在以前的Centos6上搭建的Samba一直都能正常显示在Windows 7、10、11的网络邻居中的,并且安卓设备的网络邻居也都可以显示出Samba,而现在只有Windows 7、10以及安卓设备能在网络邻居里显示Samba共享。甚至今天在完成所有…

java.sql.Date java.util.Date

文章目录 两者关系两者在时间显示上区别 两者关系 sql包中Date是util包子类 public class Date extends java.util.Date 两者在时间显示上区别 /*** 解决sql包中日期和util包日期转换问题*/Testpublic void t3(){Date utilDate new Date();java.sql.Date sqlDate new java.…

4.3 移动终端安全

数据参考:CISP官方 目录 移动智能终端重要性移动智能终端安全威胁移动智能终端安全使用 一、移动智能终端重要性 1、移动智能终端的发展 完整的超小型计算机系统 强大的处理能力完整的软硬件系统 可完成较为复杂的处理任务 拍照、听音乐、玩游戏、上网、视…

免费ai写作生成器帮你释放创作天赋

喂!听说你想提升写作功力?那么恭喜你,现在流行的ai写作软件将成为你提升写作效率的秘密武器。这是一款革命性的应用,就像你的个人写作导师,会帮助你通过简单的几步,创造出令人瞠目结舌的文字作品&#xff0…

阿里云国际站视频直播服务是什么呢?

阿里云国际站视频直播是什么呢?下面一起来看一下: 视频直播服务(ApsaraVideo Live)是基于前瞻的内容接入、分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、超低延时、高并发的音视频…

redis NOAUTH Authentication required 可能不是密码问题

开发环境 springboot 2.4.3 spring-boot-starter-data-redis 2.4.3 redis 4.0 lettuce 6.0.2 背景 多环境(test,pre,prd)部署,在测试环境测试通过之后部署预发环境的时候,服务一直报错,提示【i…

动态规划题目

真的学不会dp啊啊啊啊嗷嗷嗷嗷嗷彻底疯狂彻底疯狂,只能祈祷量变引起质变 哭 1. cf E. Fixed Points 主要是不会设状态嘛 第一维枚举i个数,第二维枚举删了几个数(删到最后还剩几个数) dp[i][j] : 代表i个数删到仅剩j个数后的最大匹配个数。然后考虑第…

arcgis更改图层字段名脚本

话不多说,上脚本源码,复制黏贴即可 #-*- coding:utf-8 -*- __author__ lumen import arcpy #输入图层 InputFeature arcpy.GetParameterAsText(0) #原始字段 oldField arcpy.GetParameterAsText(1) # 获取原始字段类型 oldFieldType desc arcpy.…

python人工智能可以干什么,python人工智能能干什么

大家好,给大家分享一下python做人工智能需要什么水平,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 人工智能包含常用机器学习和深度学习两个很重要的模块,而python拥有matplotlib、Numpy、sklearn、keras等大量的…

Linux Linux系统上C程序的编译与调试

一、环境配置 在Linux操作系统中,打开终端,以管理员root模式登录 1.更新:输入命令apt update 2.下载vim:输入命令apt install vim -y 3.下载gcc:输入命令apt install gcc -y 4.下载g:输入命令apt install …

Blazor简单教程(0):课程安排

文章目录 前言课程安排大致安排 前言 为了打发一下业余时间和普及Blazor,我开设Blazor简单教程 Tips:Blazor是真的找不到工作!我自己BOSS直聘上面找了半天,C#国内主流市场还是以Winfrom为主。 课程安排大致安排 Blazor简单介绍Visual Stu…

VR内容研发公司 | VR流感病毒实验虚拟现实课件

由广州华锐互动开发的《VR流感病毒实验虚拟现实课件》是一种新型的教学模式,可以为学生提供更加真实和直观的流感病毒分离鉴定实验操作体验,从而提高学生的实验技能和工作效率。 《VR流感病毒实验虚拟现实课件》涉及了生物安全二级实验室(BSL-2)和流感病…

ElasticSearch:项目实战(2)

ElasticSearch: 项目实战 (1) 需求&#xff1a; 新增文章审核通过后同步数据到es索引库 1、文章服务中添加消息发送方法 在service层文章新增成功后&#xff0c;将数据通过kafka消息同步发送到搜索服务 Autowiredprivate KafkaTemplate<String,String> kafkaTemplate;/…

Java整合Selenium录制视频

捕捉视频 有时候我们未必能够分析故障只需用日志文件或截图的帮助。有时捕获完整的执行视频帮助。让我们了解如何捕捉视频。 我们将利用Monte媒体库的执行相同。 配置 第1步&#xff1a;导航到URL下载屏幕记录JAR&#xff0c;如下图所示。 http://www.randelshofer.ch/monte…

linux环形缓冲区kfifo实践3:IO多路复用poll和select

基础知识 poll和select方法在Linux用户空间的API接口函数定义如下。 int poll(struct pollfd *fds, nfds_t nfds, int timeout); poll()函数的第一个参数fds是要监听的文件描述符集合&#xff0c;类型为指向struct pollfd的指针。struct pollfd数据结构定义如下。 struct poll…

django 优化方式

前言 对于网站和Web APP来说&#xff0c;相同的类型的产品&#xff0c;响应速度越好&#xff0c;那么用户量就越高。不可否认的是&#xff0c;响应速度是用户黏粘性最好的方式之一&#xff0c;但往往不知道如何下手解决&#xff0c;希望这篇文章可以给予你一些思路 对于网站和…

LC-杨辉三角-记忆版

LC-杨辉三角-记忆版 上一篇&#xff1a;LC-杨辉三角 上一篇讲了杨辉三角的算法&#xff0c;不过之前的算法存在一个问题&#xff0c;比如&#xff1a; a[5][3] a[4][2] a[4][3] a[5][4] a[4][3] a[4][4]我们可以看到计算a[5][3]和a[5][4]时都需要a[4][3]的值&#xff0c…

如何让PPT看起来规整统一

一、字体 常见问题&#xff1a;字体风格太多、文字可读性差、页面风格不匹配 1.使用文字的几个原则 &#xff08;1&#xff09;一份PPT最多使用两种中文字体 比如首页大标题宋体、正文黑体、其他页标题黑体加粗。通过粗细、字号、不同颜色背景等区分不同层级。注意 使用粗体…

【React学习】—jsx语法规则(三)

【React学习】—jsx语法规则&#xff08;三&#xff09; 一、jsx语法规则&#xff1a; 1、定义虚拟DOM&#xff0c;不要写引号&#xff0c; 2、标签中混入JS表达式要用{} 3、样式的类名指定不要用class&#xff0c;要用className 4、内联样式&#xff0c;要用style{{key:value}…