matplotlib twinx多y轴但单个图例

matplotlib 用 twinx 画多 y 轴参考 [1]。现想在画图例时,多个 y 轴的图例画在一起,写法参考 [2]。本文展示一个简例,效果:
test.png

Code

  • 要手动指定颜色,否则原 y 轴的用色和新 y 轴会重合。
import matplotlib.pyplot as plt# data to plot
a = [11859.886474338155, 11384.541612887142, 11314.948867713461, 12156.365013852563, 12404.976775275885,11621.437786082668, 12795.74640426193, 12993.03181918637, 12501.512233289674, 11350.26629984073,11590.587334446433, 11441.306187592794, 11404.947051407049, 11629.51842160388, 11763.034209161266,11126.219136054518, 11400.792280787551, 11272.906832672033, 11395.597850760485, 11358.659841616076,11379.374326229647, 11365.605541074778, 11396.632268102992, 11331.323431712111, 11332.266958200318,11363.32044026967, 11377.021840279784, 11323.601868202895, 11371.723693824233, 11225.02356255239,11257.400865610576, 11282.550566847438, 11260.885444273175, 11283.283264922617, 11270.689144877966,11252.21701350545, 11260.053691403413, 11253.275771074057, 11263.247947131156, 11291.757634932797,11292.976376828668, 11293.690639328725, 11288.613833603356, 11289.25777231545, 11287.238411511518,11287.257483993126, 11285.254494562952, 11296.294510594862, 11292.110325229343, 11289.720358617116
]
b = [0.8172, 0.8354, 0.8223, 0.8213, 0.8197,0.8052, 0.7974, 0.8086, 0.8036, 0.7972,0.806, 0.807, 0.7959, 0.7969, 0.8036,0.7705, 0.7851, 0.7811, 0.7788, 0.7765,0.7832, 0.7816, 0.784, 0.7802, 0.78,0.7805, 0.7788, 0.7779, 0.7831, 0.7767,0.7782, 0.7791, 0.778, 0.7787, 0.7788,0.7781, 0.7783, 0.7776, 0.7779, 0.779,0.7791, 0.7791, 0.779, 0.7791, 0.7789,0.7788, 0.7788, 0.779, 0.7788, 0.7788
]
assert len(a) == len(b)fig, ax = plt.subplots()
# 1st y-axis
ln1 = plt.plot(range(len(a)), a, label='a', c='r') # 手动指定颜色,否则可能两线同色
ax.ticklabel_format(style='sci', scilimits=(0,3), axis='y')
ax.set_ylabel('a')
ax.set_xlabel('x')# 2nd y-axis
zax = ax.twinx()
ln2 = zax.plot(range(len(b)), b, label='b', c='g') # 手动指定颜色,否则可能两线同色
zax.set_ylabel('b')# legend
lines = ln1 + ln2
labels = [l.get_label() for l in lines]
ax.legend(lines, labels, fancybox=True, framealpha=0)plt.title("multiple y-axes one legend")fig.tight_layout()
fig.savefig("test.png", bbox_inches="tight")

References

  1. 【python】matplotlib 实现双(多)Y轴图
  2. Secondary axis with twinx(): how to add to legend
  3. matplotlib刻度值使用科学记数法

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

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

相关文章

永磁同步直线电机(PMLSM)控制与仿真2-永磁同步直线电机数学模型搭建

文章目录 1、公式总结2、电压方程模型3、运动方程4、推力方程5、转化关系 写在前面:原本为一篇文章写完了永磁同步直线电机数学模型介绍,永磁同步直线电机数学模型搭建,以及永磁同步直线电机三环参数整定及三环仿真模型搭建,但因为…

TCP及UDP协议

tcp是点到点的,只有一条路径,到达顺序和发送顺序是相同的 回复的确认号是序发送端的序列号加上data的长度 1910 发送端的序列号也是那么算的 ack和下一个seq一样 那就没问题 三次握手四次挥手: 为啥是三次呢? 假如一次&#xf…

关于Linux ping 不通外网

网关为第三段为137那么子网ip第三段必须为137且IPaddr必须为137 将主机虚拟适配器连接到此网络必须勾上,不然vmnet适配器在windows将找不到 ping www.baidu.com不行的话试着勾上桥接模式应该是不行在勾上取消勾上桥接模式最后勾上nat模式

【2024亲测无坑】在Centos.7虚拟机上安装Oracle 19C

目录 一、安装环境准备 1、linux虚拟机安装 2、虚拟机快照 3、空间检查&软件上传 二、Oracle软件安装 1.preinstall安装及其他配置准备 2.oracle安装 三、数据库实例的安装 1.netca——网络配置助手 2.dbca——数据库配置助手 四、ORACLE 19C 在linux centos 7上…

Linux rm命令由于要删的文件太多报-bash: /usr/bin/rm:参数列表过长,无法删除的解决办法

银河麒麟系统,在使用rm命令删除文件时报了如下错误,删不掉: 查了一下,原因就是要删除的文件太多了,例如我当前要删的文件共有这么多: 查到了解决办法,记录在此。需要使用xargs命令来解决参数列表…

誉天教育近期开班计划(6月15日更新)

云计算HCIP 周末班 2024/6/15 田老师 售前IP-L3 周末班 2024/6/15 陈老师 RHCA442 晚班 2024/6/17邹老师 数通HCIE 晚班 2024/6/24阮老师 云计算HCIE直通车晚班 2024/6/25 曾老师 售前IT-L3 周末班 2024/6/29 伍老师 数通HCIP 晚班 2024/7/1杨老师 存储直通车 晚班 2024/7/1 高…

【NoSQL数据库】Redis Cluster集群(含redis集群扩容脚本)

Redis Cluster集群 Redis ClusterRedis 分布式扩展之 Redis Cluster 方案功能数据如何进行存储 redis 集群架构集群伸缩向集群中添加一个新的master节点,并向其中存储 num10 .脚本对redis集群扩容缩容,脚本参数为redis集群,固定从6001移动200…

了解统计学中不同类型的分布

目录 一、说明 二、均匀分布: 三、机器学习和数据科学中的均匀分布示例: 3.1 对数正态分布: 3.2 机器学习和数据科学中的对数正态分布示例: 四、 帕累托分布 4.1 什么是幂律? 4.2 机器学习和数据科学中的帕累托分布示例…

如何清除anaconda3缓存?

如果长期使用anaconda不清理缓存,会导致anaconda占用磁盘空间越来越多,甚至系统磁盘撑爆。 清除包缓存: 打开 Anaconda Prompt 或者命令行窗口。运行以下命令清除包缓存:conda clean --all这会清除所有的包缓存,释放磁…

docker下载ridis

1、执行 docker pull redis:4.0.1 命令,下载 redis 镜像 (需确保装有并启动bocker) 通过docker启动redis 分配端口和端口映射 密码等 rootiZf8z985hmyc9bkejcfmqrZ:~# docker run --rm -d --name redis6379 -p 6379:6379 redis:4.0.1 --req…

1.个人博客系统项目

一、项目介绍 个人博客系统 相关技术: SpringBootSpringMvcMybatisMysqlRedis项目简介:本项目为一个功能完善的个人博客系统,支持文章的编辑、修改、删除和发布,以及作者个人信息的展示等功能。项目描述: 采用前后端…

利用钉钉机器人和PHP开发一款免费的网站可用性检测工具,单节点版

前言 手里有几套系统正在运维&#xff0c;需要保障正常运行&#xff0c;所以可用性检测就必不可少啦&#xff0c; 以前本来是用的阿里官方的云监控&#xff0c;但现在价格感觉太贵了&#xff0c;不划算 那就自己手搓一个简易版的监控吧。 成品效果展示 代码展示 <?php …

微信小程序毕业设计-实验室管理系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

centos环境上:k8s 简单安装教程

本次演示安装3节点k8s环境&#xff0c;无需多言&#xff0c;直接上操作步骤&#xff1a; 1、环境准备 k8s部署前&#xff0c;首先需要准备好环境&#xff0c;除了1.4 步骤&#xff0c;其他步骤在所有&#xff08;3个&#xff09;节点上都要执行&#xff1a; 1.1 关闭防火墙 s…

【工具】新手如何正确使用Pycharm?

1. 什么是JetBrains Toolbox JetBrains Toolbox是一个管理工具&#xff0c;用于安装、更新和管理JetBrains开发工具的所有版本。它可以简化多个IDE的管理&#xff0c;并确保你总是使用最新版本的软件。 2. 安装JetBrains Toolbox 步骤1&#xff1a;下载Toolbox 访问JetBrai…

非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘

redis下载安装以及基本使用 下载地址 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;0410 一个名对应一个数值 内存级 在内存里进行操作 准备启动 我们现在就有一个redis客户端的服务器了 我们再启动一个cmd 操作redis数据库 redis里面的基本数据类型有五种 …

HTML5的未来:掌握最新技术,打造炫酷网页体验

引言 随着互联网技术的飞速发展&#xff0c;HTML5已经成为构建现代网页和应用的核心技术之一。HTML5不仅提供了丰富的语义化标签&#xff0c;还引入了多项前沿技术&#xff0c;使得网页体验更加丰富多彩。本文将探讨HTML5的最新技术&#xff0c;并结合行业实践&#xff0c;提供…

Linux操作系统学习:day02

内容来自&#xff1a;Linux介绍 视频推荐&#xff1a;[Linux基础入门教程-linux命令-vim-gcc/g -动态库/静态库 -makefile-gdb调试]( 目录 day025、Linux目录结构6、相对路径7、绝对路径8、命令提示行9、命令解析器10、命令行快捷键11、cd 命令—目录切换12、ls 命令13、文件…

Agilent 安捷伦 N9342C 手持式频谱分析仪

Agilent 安捷伦 N9342C 手持式频谱分析仪 N9342C 手持式7GHz频谱分析仪专为现场测试而设计&#xff0c;无论是安装和维护射频系统&#xff0c;现场进行故障诊断&#xff0c;监测射频环境还是分析干扰&#xff0c;都可以为您提供快速、精确的测量。它具有同类最佳的显示平均噪声…

Vscode中使用make命令

前言 需要注意&#xff0c;如下操作需要进行网络代理&#xff0c;否则会出现安装失败的情况 安装 第一步 — 安装MingGW &#xff08;1&#xff09;进入官网下载 &#xff08;2&#xff09;下载完成之后&#xff0c;双击exe文件 &#xff08;3&#xff09;点击Install &#x…