matplotlib twinx多y轴但单个图例

news2024/11/29 20:55:48

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

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

相关文章

Echarts图表:地图都有哪些配置项,一文告诉你

地图是可视化大屏中最常见的组件,echart图表中关于地图的组件非常多,那么该如何进行配置,让地图和自己的设计稿保持一致。贝格前端工场为大家列举一下。 charts地图图表在配置项中有以下常用的配置选项: title:图表标…

深入理解计算机系统 家庭作业6.34

第一步先求(S,E,B,m) 题目说共C32个字节,块大小B为16个字节,那就是分为两组:0,1.然后每组存4个int 每个4字节 CB*E*S .B16 ,直接映射的E就是1,所以S2 m为啥等于7? 通过写出两个数组所有的地址可以得出m7. 得出高速缓存的参数:(S,E,B,m)(2,1,16,7),注意图6-26每个参数的定义…

欣九康诊疗系统让中医诊所创收不再难

近些年由于国家对中医药的支持政策不断地在推进落实,所以导致中医馆、中医诊所越开越多,再加上各行各业都在向数字化转型,也给中医诊所带来了冲击,所以如何平衡机遇与竞争,实现诊所创收便成了每位中医诊所的负责人所必…

推箱子-小游戏

学习目标: 巩固Java基础,数据类型、二维数组、条件语句等; 效果展示:

空手出门不是梦,华为手机还能这么用?

夏天到了,出门东西多,零碎又费事对吧?现在就教你把繁琐的各类钥匙、公交卡、地铁卡、门禁卡、身份证……统统收纳到手机里!手机化身手提包,轻松出门!今天,我就跟大家聊聊这两神奇的功能&#xf…

Maven引用存放在本地的jar包

场景 由于需要对接合作方的接口,合作方提供了一套加解密的方法,但是需要在项目中引用他们提供的jar包,才能使用此套方法。 解决方案 方案一:将合作方的jar包保存到项目中,在pom文件内指定jar包路径进行依赖 方案二…

STM32项目分享:智能窗帘系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.c…

网络超时

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在访问一个网页时,如果该网页长时间未响应,系统就会判断该网页超时,所以无法打开网页。下面通过代码来模拟一个网…

【MySQL】索引(上)

https://www.wolai.com/curry00/fzTPy3kSsMDEgEcdvo4G5w https://www.bilibili.com/video/BV1Kr4y1i7ru/?p69 https://jimhackking.github.io/%E8%BF%90%E7%BB%B4/MySQL%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/#%E7%B4%A2%E5%BC%95 索引是一种用于快速查询和检索数据的数据结构…

知识表示与处理实验3-知识获取方法

✅作业要求:--------高分通过🎉 作业练习目标:以临床病历数据为来源,人机协同标注一定量标准数据集,研发基于机器学习的命名实体抽取等非结构化知识获取方法。 作业形式:提交代码及实验报告,实验报告以Word或者PDE形式…

基于Python+Django+MySQL+HTML的创新创业平台

DjangoMySQLHTML 基于PythonDjangoMySQLHTML的创新创业平台 用户管理 系统监控 角色管理 资源管理 参数设置 角色管理 简介 学生创新创业平台是一个功能丰富的在线教育或协作系统,支持中文语言环境。它提供用户管理、系统监控、多角色权限控制、资源管理、参…

Django REST framework关联序列化器详解:掌握复杂关系的序列化与反序列化艺术

系列文章目录 Django入门全攻略:从零搭建你的第一个Web项目Django ORM入门指南:从概念到实践,掌握模型创建、迁移与视图操作Django ORM实战:模型字段与元选项配置,以及链式过滤与QF查询详解Django ORM深度游&#xff…

c++使用nlohmann读取json文件

下载&#xff1a; GitHub - nlohmann/json: JSON for Modern C 解压&#xff1a; 包含头文件&#xff1a; 要包含的头文件和要使用的命名空间&#xff1a; #include <nlohmann/json.hpp>using json nlohmann::json; 测试文件&#xff1a; 代码&#xff1a; #include…

等待 chrome.storage.local.get() 完成

chrome.storage.local.get() 获取存储处理并计数&#xff0c;内部计数正常&#xff0c;外部使用始终为0&#xff0c;百思不得其解。 如何在继续执行之前等待异步chrome.storage.local.get()完成-腾讯云开发者社区-腾讯云 (tencent.com) 原来我忽略了异步问题&#xff0c;最简…

通勤路上的美好伴侣:倍思H1s头戴式蓝牙耳机

在繁忙的都市生活中,通勤往往占据了人们大量的时间。而在这个过程中,无尽的嘈杂声——公交车的播报声、地铁的轰鸣声、街头的喧嚣——往往成为我们心情的干扰源。在这样的环境下,一款优质的头戴式蓝牙耳机,会让我们的通勤之旅变得更加愉快和舒适。 通勤路上要更舒适—— 倍思…

显示类控件——Label

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;QT ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 文章目录 一、Label介绍属性代码示例: 显示不同格式的文本代码示例: 显示图片代码示例: 文本对齐, 自动换行…

在Kubernetes中部署Elasticsearch高可用集群详细教程

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

【Pycharm】设置双击打开文件

概要 习惯真可怕。很多小伙伴用习惯了VsCode开发&#xff0c;或者其他一些开发工具&#xff0c;然后某些开发工具是单击目录文件就能打开预览的&#xff0c;而换到pycharm后&#xff0c;发现目录是双击才能打开预览&#xff0c;那么这个用起来就特别不习惯。 解决办法 只需一…

数智教育创新如何向未来?腾讯云与你探索革新之路

引言 随着科技革命的快速发展&#xff0c;掀起教育领域的变革&#xff0c;新理念、新技术、新模式、新应用正不断涌现&#xff0c;正塑造着教育的未来形态。未来科技还将如何赋能教育创新&#xff1f; 5月31日&#xff0c;由腾讯云TVP 与西安电子科技大学联合举办的「数智教育的…

智慧场馆:绝对是科技+建筑的完美盛宴,有图有真相。

2024-01-03 14:34贝格前端工场 去年的亚运会&#xff0c;让大家体验了一把建筑科技&#xff0c;现在这个依然成了新趋势&#xff0c;贝格前端工场借此描述下场馆和科技的紧密联络&#xff0c;以及智慧场馆的应用场景。 智慧场馆是指通过科技手段将传统场馆进行升级改造&#…