python绘图创建两个坐标轴 共享一个x轴

在Matplotlib中,可以使用twiny()或者twinx()方法创建一个共享一条轴线的第二个坐标轴,从而实现绘制两个坐标轴的效果

import matplotlib.pyplot as plt
import numpy as np# 创建一些示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 绘制第一个坐标轴
fig, ax1 = plt.subplots()ax1.plot(x, y1, label='Sin(x)', color='blue')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Sin(x)', color='blue')
ax1.tick_params('y', colors='blue')# 创建第二个坐标轴,共享X轴
ax2 = ax1.twinx()
ax2.plot(x, y2, label='Cos(x)', color='red')
ax2.set_ylabel('Cos(x)', color='red')
ax2.tick_params('y', colors='red')# 添加图例
lines, labels = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines + lines2, labels + labels2, loc='upper right')# 显示图形
plt.show()

在这个例子中,ax1是第一个坐标轴,ax2是共享X轴的第二个坐标轴。使用ax1.twinx()创建ax2,并通过ax2.set_ylabel()设置第二个坐标轴的Y轴标签。最后,使用ax2.legend()将两个坐标轴的图例合并显示。

问题

1、发现上面代码运行,两个坐标轴的图例互相之间被覆盖了

解决方法:

import matplotlib.pyplot as plt
import numpy as np# 创建一些示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 创建第一个坐标轴
fig, ax1 = plt.subplots()
line1, = ax1.plot(x, y1, label='Sin(x)', color='blue')
ax1.set_xlabel('X-axis')
ax1.set_ylabel('Sin(x)', color='blue')
ax1.tick_params('y', colors='blue')# 创建第二个坐标轴,共享X轴
ax2 = ax1.twinx()
line2, = ax2.plot(x, y2, label='Cos(x)', color='red')
ax2.set_ylabel('Cos(x)', color='red')
ax2.tick_params('y', colors='red')# 合并图例
lines = [line1, line2]
labels = [line.get_label() for line in lines]
ax1.legend(lines, labels, loc='upper right')# 显示图形
plt.show()

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

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

相关文章

第十四届蓝桥杯国赛 C++ B 组 G 题——AB路线(AC)

目录 1. AB路线1. 问题描述2. 输入格式3. 输出格式4. 样例输入5. 样例输出6. 样例说明7. 评测用例规模与约定8. 原题链接 2. 解题思路3. AC_Code 1. AB路线 前置知识点:BFS (广度优先搜索) 1. 问题描述 有一个由 N M N \times M NM 个方格组成的迷宫&#xff0…

flutter-相关个人记录

1、flutter 安卓打包打包报错 flutter build apk -v --no-tree-shake-icons 2、获取华为指纹证书命令 keytool -list -v -keystore ***.jks 3、IOS项目中私有方法查找隐藏文件中 1、cd 项目目录地址 2、grep -r xerbla. "xerbla"为需要查找的关键字 3…

【秒剪】如何一键恢复至素材原长?

Step1:点击下方【剪辑】 Step2:点击【时长截取】 Step3:点击【恢复至原长】 Step4:点击【恢复所有片段到原长】

推荐一个还可以的windows ssh工具

1.下载 https://github.com/kingToolbox/WindTerm/releases 2.解压 3.使用 上传 下载都很快 比cmd窗口好用 当然和finalshell有点像

JAVASE进阶(设计模式、设计原则)

目录 一、注解 内置注解:JAVA中已经定义好的注解。 元注解:修饰注解的注解。 自定义注解。 二、克隆 JAVA中对clone的实现? 浅克隆 深克隆 那么该如何做到深克隆呢? 三、常用设计模式 1、创建型模式 单例模式 工厂模式 工厂方法模式 抽象工厂模式 原型模式 一、注…

系统登录的时候的密码如何做到以加密的形式进行登录【java.security包下的api】工具类。

/** description: 将普通的publicKey转化得到一个RSAPublicKey* author: zkw* date: 2024/1/24 16:17* param: publicKey 普通的publicKey* return: RSAPublicKey 得到一个新的RSAPublicKey**/public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorit…

oracle数据库插入或者更新判断是否存在记录的SQL

oracle数据库插入或者更新判断是否存在记录的SQL 1、插入的时候判断是否存在,若存在则忽略,若不存在则插入 写法① insert into student(id,name,sex) select 111,张三,女 from dual where not exists (select 1 from student where id 111)写法② …

vue中图片不显示问题 - vue中静态资源加载

文章目录 vue中图片不显示问题静态资源URL 转换规则webpack 静态资源处理 图片不显示问题问题描述解决办法1:使用require引入require is not defined 解决办法2:使用import引入解决办法3:将图片放进公共文件夹static或public vue中图片不显示…

代码随想录算法训练营第十四天|104.二叉树的最大深度,559.n叉树的最大深度,111.二叉树的最小深度,222.完全二叉树的节点个数

系列文章目录 代码随想录算法训练营第一天|数组理论基础,704. 二分查找,27. 移除元素 代码随想录算法训练营第二天|977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 代码随想录算法训练营第三天|链表理论基础&#xff…

Qt 鼠标按下移动释放事件

文章目录 1 通过自定义控件实现1.1 鼠标跟踪 2 鼠标事件移动标签 QEvent::MouseButtonPress ​ 鼠标按下时,触发该事件,它对应的子类是QMouseEvent QEvent::MouseMove ​ 鼠标移动时,触发该事件,它对应的子类是QMouseEvent QEv…

《解锁R统计分析:深度探索R Commander图形界面》

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在数据科学与大数据技术的浪潮中,R…

基于Java的学生宿舍门禁信息管理系统的设计与实现(源码+lw+部署文档+讲解等

目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的 系统功能测试 系统测试结论 代码参考 数据库代码参考 源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、…

Cesium 常见配置

文章目录 常见配置1. 修改天空背景(skyBox)2. 去除版权信息3. 增加太阳光照效果4. 实现昼夜联动效果5. 显示帧数6. 增加太阳光照7. 大气层显示8. 开启地形深度检测9. 禁止相机进入地下10. 右键拖拽场景倾斜11. 关闭抗锯齿12. 鼠标操作惯性控制13. 自动调整分辨率14. 默认定位到…

记录:云计算学习日常之shell

一、初识shell 文件描述符与输出重定向: 在shell程式中,最常使用的FD(filedescriptor)有三个,分别是: 0:Standard Input(STDIN) 1:Standard Output(STDOUT) 2:Standard Error Output(STDER…

Linux 常见性能指标 -- 网络

本系列记录操作系统常见性能指标,写这个主要是记录也是回顾,笔记很长,拆分了几个部分,本篇记录 网络 的性能指标 日常最常见的问题就是 ping 能不能通,telnet 端口通不通,来判断网络是否正常。但是有些时候…

【数据结构】数据结构初识

前言: 数据结构是计算存储,组织数据的方式。数据结构是指相互间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 Data Structure Vi…

H.264数据解析

什么是H.264 H264 是 MPEG-4 标准所定义的最新编码格式,同时也是技术含量最高、代表最新技术水平的视频编码格式之一,标准写法应该是H.264 H264 视频格式是经过有损压缩的,但在技术上尽可能做的降低存储体积下获得较好图像质量和低带宽图像…

劳特巴赫的基础使用(二)

一、基本介绍 LAUTERBACH是世界领先的微处理器开发工具厂商,成立于1979年,总部位于德国慕尼黑。 JTAG Debugger由PowerDebug和Debug Cable组成。PowerDebug是通用控制模块,支持所有Cable,没有License。Debug Cable绑定License&a…

26、江科大stm32视频学习笔记——I2C读写W25Q64

一、W25Q64简介 1、W25Q64的内存空间结构: 一页256字节,4K(4096 字节)为一个扇区,16个扇区为1块,容量为8M字节,共有128个块,2048 个扇区。 2、W25Q64每页大小由256字节组成,每页的256字节用一次页编程指…

笔记:C++/C编程学习:使用nuget管理c++库的原理

如果要做一个应用程序,我们往往会用到很多第三方库,这时库包管理工具就很重要,如js/npm,c#/nuget,php/composer,jave/maven之类,但vc一直没一个很舒服的包管理工具。很多c第三方库对vc都非常不友…