使用Matplotlib画多y轴图

使用Matplotlib画多y轴图

  • 代码
  • 成品图

代码

import matplotlib.pyplot as plt
import mpl_toolkits.axisartist as AA
from mpl_toolkits.axes_grid1 import host_subplot%matplotlib inline
config = {"font.family": "serif","font.size": 14,"mathtext.fontset": "stix","font.serif": ["Times New Roman"],"xtick.direction": "in","ytick.direction": "in",
}
plt.rcParams.update(config)host = host_subplot(111, axes_class=AA.Axes)
# plt.subplots_adjust(right=0.75)
par1 = host.twinx()
par2 = host.twinx()
par3 = host.twinx()# set the position of axes
host.axis["top"].set_visible(True)offset = 0
new_fixed_axis = par1.get_grid_helper().new_fixed_axis
par1.axis["right"] = new_fixed_axis(loc="right", axes=par1, offset=(offset, 0))
par1.axis["right"].toggle(all=True)offset = 50
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right", axes=par2, offset=(offset, 0))
par2.axis["right"].toggle(all=True)
# par2.axis["right"].set_visible(False)offset = 110
new_fixed_axis = par3.get_grid_helper().new_fixed_axis
par3.axis["right"] = new_fixed_axis(loc="right", axes=par3, offset=(offset, 0))
par3.axis["right"].toggle(all=True)host.set_xlabel("Time (s)", fontsize=config["font.size"] + 2)
# host.set_ylabel("Shear stress, normal stress (MPa)")
host.text(-22, 0.35, 'Normal stress, ', color='c', va='center', rotation='vertical', fontsize=config["font.size"] + 2)
host.text(-22, 0.74, 'shear stress ', color='m', va='center', rotation='vertical', fontsize=config["font.size"] + 2)
host.text(-22, 1.01, '(MPa)', color='k', va='center', rotation='vertical', fontsize=config["font.size"] + 2)
par1.set_ylabel("Slip displacement (mm)", fontsize=config["font.size"] + 2)
par2.set_ylabel("Slip velocity (mm/s)", fontsize=config["font.size"] + 2)
par3.set_ylabel("Normal displacement (mm)", fontsize=config["font.size"] + 2)# plot
colors = ["c", "m", "b", "r", "k"]
p0 = host.plot(data2.index,data2["垂直応力(1)[MPa]"],"-",linewidth=1,color=colors[0],label="Normal stress",
)
p0 = host.plot(data2.index,data2["せん断応力[MPa]"],"-",linewidth=1,color=colors[1],label="Shear stress",
)
p1 = par1.plot(data2.index,data2["せん断変位[mm]"],linewidth=1,color=colors[2],label="shear displacement",
)
p2 = par2.plot(data2.index,data2["velocity[mm/s]"],linewidth=1,color=colors[3],label="shear velocity",
)
# par2.plot([0, 800], [0, 0], "k-", linewidth=0.8)
p3 = par3.plot(data2.index,data2["垂直全平均変位[mm]"],linewidth=1,color=colors[4],label="Normal displacement",
)# 轴名称颜色
host.axis["left"].label.set_color(p0[0].get_color())
par1.axis["right"].label.set_color(p1[0].get_color())
par2.axis["right"].label.set_color(p2[0].get_color())
par3.axis["right"].label.set_color(p3[0].get_color())# set limits of the axes
host.set_xlim(0, 200)
host.set_ylim(0, 1.2)
par1.set_ylim(0, 18)
par2.set_ylim(-0.05, 0.4)
par3.set_ylim(0, 0.6)par3.plot([45, 45], [0, 20], "k--", alpha=0.5)
# start and end time point for evaluating normal stiffness
par3.plot([120, 120], [0, 20], "k--", alpha=0.5, label='Start for computing normal stifness')
par3.plot([148, 148], [0, 20], "k--", alpha=0.5, label='End for computing normal stifness')
# start and end time point for shearing dilation
par3.plot([178, 178], [0, 20], "k--", alpha=0.5, label='Start for computing shear dilation')
par3.plot([187, 187], [0, 20], "k--", alpha=0.5, label='End for computing shear dilation')# plt.legend(ncol=1, bbox_to_anchor=(1.45, 0.7), loc=2, borderaxespad=0)
host.text(3, 1.12,'${\\rm JRC=3.21}, \\sigma_{\\rm n}^{\\rm 0}=1 \\ {\\rm MPa}$',fontsize=config["font.size"] + 2)
host.text(-25, 1.185, '(a)', fontsize=config["font.size"] + 2, fontweight='bold')plt.show()

成品图

多y轴图

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

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

相关文章

保序回归与金融时序数据

保序回归在回归问题中的作用是通过拟合一个单调递增或递减的函数,来保持数据点的相对顺序特性。 一、保序回归的作用 主要用于以下情况: 1. 有序数据:当输入数据具有特定的顺序关系时,保序回归可以帮助保持这种顺序关系。例如&…

认识系统服务

daemon与service 达成某个服务(service)需要一个守护进程(daemon)在后台运行。 实现 ssh 服务,需要 sshd 这个守护进程实现 mysql 服务,需要 mysqld 这个守护进程实现 cron 服务,需要 crond 这…

电源模块测试用例科普:如何调整电压调整率?ATECLOUD-POWER测试系统能否测试?

电压调整率可以控制电压水平,确保设备正常工作,并且可以减少电能浪费,是开关电源测试的其中一个测试项目。那么要如何测试电压调整率呢?测试条件是什么呢? 什么是电压调整率? 电压调整率是指变压器某个绕组的空载电压和指定负载和功率因数…

软考系列(系统架构师)- 2019年系统架构师软考案例分析考点

试题一 软件架构(架构风格、质量属性) 【问题1】(13分) 针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种…

三网话费余额查询的API系统 基于thinkphp6.0框架

本套系统是用thinkphp6.0框架开发的,PHP需大于8.2,系统支持用户中心在线查询和通过API接口对接发起查询,用户余额充值是对接usdt接口,源码全开源,支持懂技术的人二次开发~搭建教程1、源码上传后,吧运行目录…

【TES600】青翼科技基于XC7K325T与TMS320C6678的通用信号处理平台

板卡概述 TES600是一款基于FPGA+DSP协同处理架构的通用高性能实时信号处理平台,该平台采用1片TI的KeyStone系列多核浮点/定点DSP TMS320C6678作为主处理单元,采用1片Xilinx的Kintex-7系列FPGA XC7K325T作为协处理单元,具有1个FMC…

斜率优化dp

f i min ⁡ ( a j − j i ) f_i\min(a_j - j \times i) fi​min(aj​−ji) 考虑变成点对 ( j , a j ) (j,a_j) (j,aj​),则 f i Y j − X j i f_iY_j-X_ji fi​Yj​−Xj​i 令 i k , f i b ik, f_ib ik,fi​b,得 b Y j − X j k bY_j-X_jk b…

甄知科技张礼军:数智化转型助企业破茧成蝶!

数智化浪潮滚滚向前,正席卷各行各业,带领企业从数字化时代跨入数智化时代。可什么是数智化?如何实现数智化转型?已经成为横亘在无数企业面前的大难题! 事实上,数智化是数字化、AI和业务三个要素的交集&…

4.9 多协议标记交换MPLS

思维导图: 前言: **4.9 多协议标记交换MPLS笔记** 1. **定义与背景**: - MPLS (多协议标记交换) 是一种由 IETF 开发的新协议。 - “多协议”意味着 MPLS 的上层可以使用多种协议。 - 该协议综合了多家公司的技术,如 C…

【MySQL系列】- Select查询SQL执行过程详解

【MySQL系列】- Select查询SQL执行过程详解 文章目录 【MySQL系列】- Select查询SQL执行过程详解一、SQL查询语句的执行过程二、SQL执行过程详解2.1. 连接器2.2. 查询缓存2.3. 分析器2.4. 优化器2.5. 执行器 三、undo log 和 redo log作⽤3.1. redo log (重做日志&a…

基于Linux的驱动开发:内核模块传参、内核到处符号表、字符设备驱动

内核模块传参 内核模块: int a , b; 安装内核模块时:insmod demo.ko a 100 b 10; 1.内核模块传参的意义 在安装内核模块时给内核模块中的变量进行数值传递,这样可以让我们的内核模块向上兼容更为复杂的应用程序,向下适配多种硬件…

2022年亚太杯APMCM数学建模大赛C题全球变暖与否全过程文档及程序

2022年亚太杯APMCM数学建模大赛 C题 全球变暖与否 原题再现: 加拿大的49.6C创造了地球北纬50以上地区的气温新纪录,一周内数百人死于高温;美国加利福尼亚州死亡谷是54.4C,这是有史以来地球上记录的最高温度;科威特53…

JVM内存模型概述

这里主要分为五大块,分别是:本地方法栈、方法区、java堆、程序计数器和java栈。其中重点是方法区、java堆和java栈。 下面就把各个区域的性质总结一下:(说明,下面的只是结论,没有详细的对各个内存块进行详细…

运维监控Zabbix部署

目录 运维监控Zabbix部署 1. 简介 2. 安装 ​编辑 2.1 安装前准备 - Mysql 2.2 安装Zabbix Server 和 Zabbix Agent 2.2.1 安装Zabbix yum库 2.2.2 安装Zabbix Server、前端、Agent 2.2.3 初始化Mysql数据库 2.2.4 为Zabbix Server配置数据库 2.2.5 配置Zab…

AI驱动的未来:探索人工智能的无限潜力 | 开源专题 No.39

这一系列开源项目代表着多个领域的最新技术成果,包括深度学习、自然语言处理、计算机视觉和分布式训练。它们共同的特点是致力于教育、资源分享、开源精神、多领域应用以及性能和效率的追求,为广大开发者、研究者和学生提供了宝贵的工具和知识&#xff0…

AI全栈大模型工程师(九)Function Calling 的机制

文章目录 Function Calling 的机制Function Calling 示例 1:加法计算器Function Calling 实例 2:四则混合运算计算器后记Function Calling 的机制 Function Calling 示例 1:加法计算器 需求:用户输入任意可以用加法解决的问题,都能得到计算结果。 # 加载环境变量import o…

elasticsearch的docker安装与使用

安装 docker network create elasticdocker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.4# 增加虚拟内存, 此处适用于linux vim /etc/sysctl.conf # 添加 vm.max_map_count262144 # 重新启动 sysctl vm.max_map_countdocker run --name es01 --net …

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型

【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型 SKRR这是Gustau Camps-Valls等人在“用深度结构核回归检索物理参数”中提出的结构核岭回归(SKRR)方法。 参考文献: Camps-Valls,Retrieval of Physical Pa…

AM@两种余项型泰勒公式的对比和总结@常用函数的麦克劳林公式

文章目录 abstract两种余项型泰勒公式的对比和总结Maclaurin公式常用函数的Maclaurin公式推导例求极限按幂展开 abstract 泰勒公式的两种余项型(Penao&Lagrange)泰勒公式的对比和总结常用的Maclaurin公式列举(Peano余项型为主) 两种余项型泰勒公式的对比和总结 Taylor公式…

FL Studio21最新中文破解进阶高级完整版安装下载教程

目前水果软件最版本是FL Studio21,它让你的计算机就像是全功能的录音室,大混音盘,非常先进的制作工具,让你的音乐突破想象力的限制。喜欢音乐制作的小伙伴千万不要错过这个功能强大,安装便捷的音乐软件哦!如…