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

news2024/12/23 4:34:52

一、四种方法

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.coloradmin.cn/o/861106.html

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

相关文章

竞赛项目 深度学习实现语义分割算法系统 - 机器视觉

文章目录 1 前言2 概念介绍2.1 什么是图像语义分割 3 条件随机场的深度学习模型3\. 1 多尺度特征融合 4 语义分割开发过程4.1 建立4.2 下载CamVid数据集4.3 加载CamVid图像4.4 加载CamVid像素标签图像 5 PyTorch 实现语义分割5.1 数据集准备5.2 训练基准模型5.3 损失函数5.4 归…

仿到位|独立版家政上门预约服务小程序家政保洁师傅上门服务小程序上门服务在线派单源码

上门预约服务派单小程序家政 小程序 同城预约 开源代码 独立版. 程序完整,经过安装检测,可放心下载安装。 适合本地的一款上门预约服务小程序,功能丰富,适用多种场景。 程序功能:城市管理/小程序DIY/服务订单/师傅管理/会员卡功能/营销功能/文章功能等等

业绩难言乐观,皓泽电子撤回上市申请,小米等为其关联方

撰稿|行星 来源|贝多财经 8月8日,深圳证券交易所披露的信息显示,由于河南皓泽电子股份有限公司(下称“皓泽电子”)及其保荐人主动要求撤回申请文件,深交所终止了皓泽电子的发行注册程序。 据此前招股书披露&#xff…

大模型的数据隐私问题有解了,浙江大学提出联邦大语言模型

作者 | 小戏、Python 理想化的 Learning 的理论方法作用于现实世界总会面临着诸多挑战,从模型部署到模型压缩,从数据的可获取性到数据的隐私问题。而面对着公共领域数据的稀缺性以及私有领域的数据隐私问题,联邦学习(Federated Le…

火车头采集伪原创插件【php源码】

大家好,小编来为大家解答以下问题,python代码大全和用法,python代码大全简单,现在让我们一起来看看吧! 火车头采集ai伪原创插件截图: 1、题目:列表转换为字典。 程序源代码: 1 #!/us…

外部节点访问 k8s 集群内的 starrocks

问题描述 用kubeadm在虚拟机搭建了k8s,按starrocks官网步骤,用k8s部署了starrocks 部署成功: 在 k8s集群内节点访问到 sr:(通过 clusterIP ) mysql -h 10.97.182.109 -uroot -P 9030 k8s 节点内访问成功…

windows10开启远程连接

目录 开启远程连接远程连接 开启远程连接 右击电脑图标->属性 点击 远程设置 远程连接 找到 远程桌面连接 点击 远程桌面连接 输入远程ip 10.0.8.5 然后点击连接 4.输入默认用户名new的密码,然后确定,搞定。

tensorflow-gpu cuda cudNN tensorRT 安装

tensorflow-gpu cuda cudNN tensorRT 安装 tensorflow-gpu 版本对应关系 https://tensorflow.google.cn/install/source#gpu CUDA 安装 安装文档 https://docs.nvidia.com/cuda/ linux 安装文档 :https://docs.nvidia.com/cuda/cuda-installation-guide-linux/i…

爬虫如何应对网站的反爬机制?如何查找user-agent对应的值

import requestsurl https://movie.douban.com/top250 response requests.get(url) # 查看结果 print(response)在requests使用一文中我们有讲到,当状态码不是200时表示爬虫不可用,也就是说我们获取不到网页源代码。但是我们还是可以挣扎一下&#xff…

WordPress博客发布到公网可访问【 windows系统及linux系统操作】

文章目录 1. 免费注册并下载安装cpolar内网穿透1.1 windows系统1.2 linux系统 2. 将内网映射到公网3. 获取所映射的公网地址 要将自己搭建的个人WordPress博客网站发布到公网可访问,比较常规的做法是买服务器、域名,将其部署到服务器上,备案发…

定制 ChatGPT 以满足您的需求 自定义说明

推荐&#xff1a;使用 NSDT场景编辑器 快速助你搭建可二次编辑的3D应用场景 20 月 <> 日&#xff0c;OpenAI 宣布他们正在引入带有自定义说明的新流程&#xff0c;以根据您的特定需求定制 ChatGPT。 什么是自定义说明&#xff1f; 新的测试版自定义指令功能旨在通过防止…

.NET6使用SqlSugar操作数据库

1.//首先引入SqlSugarCore包 2.//新建SqlsugarSetup类 public static class SqlsugarSetup{public static void AddSqlsugarSetup(this IServiceCollection services, IConfiguration configuration,string dbName "ConnectString"){SqlSugarScope sqlSugar new Sq…

后端开发7.轮播图模块【mongdb开发】

概述 轮播图模块数据库采用mongdb开发 效果图 数据库设计 创建数据库 use sc; 添加数据 db.banner.insertMany([ {bannerId:"1",bannerName:"商城轮播图1",bannerUrl:"http://xx:8020/img/轮播图/shop1.png"}, {bannerId:"2"…

人大金仓助力某大型金融机构业务系统异地容灾优化升级

日前&#xff0c;人大金仓助力某大型金融机构应收账款融资服务平台异地容灾项目顺利上线&#xff0c;保证了平台系统运行的连续性和数据安全&#xff0c;为充分发挥平台的融资功能&#xff0c;缓解中小微企业融资难提供了强有力的保障。 “ 缓解中小微企业融资难 某大型金融机构…

Java算法_ 杨辉三角(LeetCode_Hot100)

题目描述&#xff1a;题目描述&#xff1a;给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码…

关于Object 0 = new Object() 的追魂九连问

文章目录 对象的创建过程对象的组成解析普通对象**结果分析&#xff1a;**给对象添加属性注意事项 补充jvm压缩指针栗子&#xff1a; 对象头包含什么对象怎么定位&#xff1f;**句柄方式和直接引用的优缺点&#xff1a;** 对象怎么分配&#xff1f;为什么hotspot不使用c对象来代…

【JavaScript】一文详解事件循环机制

目录 一、是什么 二、同步任务和异步任务 三、宏任务和微任务 小结&#xff1a;微任务是跟屁虫&#xff0c;一直跟着当前宏任务后面代码执行到一个微任务就跟上&#xff0c;一个接着一个。 例子理解&#xff1a; 五、题目巩固 六、总结 一、是什么 首先JavaScript是一种…

CAD练习——绘制电路

绘制如图交叉的六条线&#xff1a; 修剪&#xff0c;在右侧绘制如图的线&#xff1a;&#xff08;平移O&#xff09; 修剪 效果&#xff1a; 绘制电路触点 B:块编辑器&#xff0c;设置为块 添加触点到其他几个位置&#xff08;I&#xff1a;插入&#xff09; 绘制其他电路器件…

【Linux】内核宏定义解释postcore_initcall,arch_initcall,subsys_initcall

postcore_initcall postcore_initcall(pcibus_class_init) 是一个宏&#xff0c;用于在Linux内核初始化过程中注册一个后期初始化函数。 这个宏的含义如下&#xff1a; postcore_initcall 是一个宏定义&#xff0c;用于指定注册的函数在内核初始化的哪个阶段执行。 pcibus_cl…

GOLANG进阶 之 接口(interface) 与 管道(channel)

好久没有跟新过文章了&#xff0c;小编最近有点忙&#xff0c;写文章的频率下降了许多&#xff0c;但是还是会持续跟新的&#xff0c;希望关注的同学仔细学习。 首先讲一下接口具体是个啥&#xff1f;小白可以结合官方定义和小编自己的理解共同学习下 官方解释&#xff1a;接口…