制作论文中双Y轴散点图

2023-11-02

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.dates import AutoDateLocator, DateFormatter
from datetime import datetime, timedelta
plt.rcParams['font.family'] = 'Times New Roman'
df = pd.read_csv(r'自己csv文件', parse_dates=['date'])
fig, ax = plt.subplots(figsize=(16,9))
ax.plot_date(df.date, df.R2, fmt='b.')
ax2 = ax.twinx()
ax2.plot_date(df.date, df.MAE, fmt='r.')

ax2.spines['left'].set_color('blue')
ax2.spines['right'].set_color('red')

plt.xticks(rotation=90, ha='center')
# 左侧y轴的刻度线标签颜色
ax.tick_params(axis='y', colors='b')
# 右侧y轴的刻度线标签颜色
ax2.tick_params(axis='y', colors='r')

date_locator = AutoDateLocator()
ax.xaxis.set_major_locator(date_locator)
date_formatter = DateFormatter('%Y')
ax.xaxis.set_major_formatter(date_formatter)

ax.set_xlabel('time')
ax.set_ylabel('Cross validation R2',c='b')
ax2.set_ylabel('MAE(μg/m3)',c='r')
# 在每个年份的x轴加上竖直线,不要标签,要标签的话自己取消注释
for year in range(2015, 2022):
    ax.axvline(datetime(year, 1, 1), c='k', lw=0.5, ls='--')
    # ax.text(datetime(year, 1, 1), 0.1, str(year), c='k', ha='center', va='bottom', rotation=90, fontsize=12)

ax.scatter(df.date, df.R2, c=df.R2, cmap='YlOrRd', s=20)
ax2.scatter(df.date, df.MAE, c=df.MAE, cmap='YlGnBu', s=20)

plt.subplots_adjust(top=0.8, bottom=0.2, left=0.15, right=0.85)

plt.show()
# 保存图片
fig.savefig(r'输出位置', dpi=1000, bbox_inches='tight')

 此为结果图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

制作论文中双Y轴散点图 的相关文章

随机推荐

  • C++类型别名

    1 类型别名定义 类型别名 type alias 是一个名字 它是某种类型的同义词 使用类型别名有很多好处 它让复杂的类型名字变得简单明了 易于理解和使用 还有助于程序员清楚地知道使用该类型的真实目的 有两种方法可用于定义类型别名 1 传统
  • c++字符串倒序

    include
  • PostgreSQL 分组集合新功能(GROUPING SETS,CUBE,ROLLUP)

    PostgreSQL 分组集合新功能 GROUPING SETS CUBE ROLLUP 实验环境 操作系统 windows 10 家庭中文版 数据库系统 PostgreSQL 9 6 2 说明 postgresql从9 5版本开始新加入了
  • 计算机视觉中的“x模型全系列大解析(Neck篇)”,探讨图像处理技术

    计算机视觉中的 x模型全系列大解析 Neck篇 探讨图像处理技术 计算机视觉中 许多任务需要使用卷积神经网络 CNNs 来处理图像数据 其中一种常见的架构是x模型 该模型由许多组卷积层和池化层组成 并以一个全局平均池化层结束 在这篇文章中
  • 系统测试(重点知识)

    软件的生命周期 计划 分析 设计 编码 测试 运维 软件的研发模型 1 大爆炸模型 开发人员不遵循任何特定过程 从资金投入开始 到检查是否与客户要求一致结束 2 边写边改模型 根据用户的需求 完成一个版本后 再根据用户的修改意见 继续发布新
  • 通用组、全局组、本地域组的区别

    1 本地域组 多域用户访问单域资源 访问同一个域 本地域组的成员可包括Windows Server2003 Windows 2000或WindowsNT域中的其他组和账户 而且只能在其所在域内指派权限 2 全局组 单域用户访问多域资源 必须
  • POSIX Vs System V

    POSIX Vs System V 分类 unix linux 2007 11 19 11 46 184人阅读 评论 0 收藏 举报 看 UNIX网络编程卷二 IPC 基本是前一章介绍POSIX 后一章就介绍 System V 没有好好看各
  • VMware Site Recovery Manager-SRM部署

    VMware Site Recovery Manager 是一款与底层复制技术集成的自动化软件 可提供 基于策略的管理 无中断测试和自动化的恢复计划编排 它专为虚拟机而设计 而且可以 扩展以管理 VMwarevSphere 环境中的所有应用
  • CSS3 媒体查询

    1 什么是媒体查询 CSS3媒体查询 Media Query 语法的特性 使用 media 查询 可以针对不同的媒体类型定义不同的样式 media 可以针对不同的屏幕尺寸设置不同的样式 当你重置浏览器大小的过程中 页面也会根据浏览器的宽度和
  • 局部变量,全局变量与内存

    本文会使用IDA分析局部变量 全局变量在内存的存储 目录 使用IDA分析局部变量 使用IDA分析全局变量 总结 使用IDA分析局部变量 include
  • JavaScript -- Set数据结构

    文章目录 什么是Set Set实例的属性和方法 add has delete clear forEach size属性 Set构造函数 数组 字符串 arguments DOM Set 注意事项 判断重复的方式 Set应用 Set转数组 数
  • flask 导入一个模板

    from flask import Flask redirect url for render template app Flask name app route def index return render template login
  • neo4j图数据入门(二)数据的插入和删除 图形界面操作 图文并茂

    点击下图中的按钮 点击下图中按钮 上图中的代码 CREATE p1 Person name 胡兴炯 born 1991 interest mac ios 旅游 goodat java swift objectiveC p2 Person n
  • Java - 多态之向上转型与向下转型

    Java 多态之向上转型与向下转型 代码示例 父类 public class Father int f 100 public void name System out println father public void tel Syste
  • Premiere Pro 2022 for Mac(pr2022)中文版

    Mac版Premiere Pro 2022更新了 最新版的pr2022不仅可以帮助用户对各种视频进行剪辑 旋转 分割 合并 字幕添加 背景音乐等基础的处理 还能帮助用户进行视频颜色校正 颜色分级 稳定镜头 调整层 更改片段的持续时间和速度
  • hover调试小技巧(无需修改代码)

    某块内容是hover后才能显示的 但此时我们想要调试hover态的时候 通常的办法是以下几种 改代码 修改代码让它默认处于hover态 但是这样麻烦不说 还只应用于本地环境 每次改代码都需要进行热更新 用Chrome开发工具让DOM处于ho
  • cache write back

    1 问题阐述 在ITE的SDK上编译 选择了CPU write back cache enable CPU WB 之后 显示画面总是出现有错乱 通过设置断点 发现当停在解析的数据后 在运行就不会出现错乱现象 问了大神才知道 只是cache没
  • qt开发的程序 为何一个主窗口关闭了,程序不退出,而是到等到所有窗口关闭了,才退出呢?

    这种行为是由Qt框架中的事件循环 Event Loop 机制引起的 Qt应用程序在执行时 会进入一个事件循环 该循环负责处理用户输入 事件和信号 并相应地调用相应的槽函数或处理程序 当你关闭一个Qt应用程序的主窗口时 主窗口会发出一个关闭事
  • 二进制模2除法(CRC校验)

    二进制模2除法与二进制除法不同 模2运算 加法不进位 减法不借位 二进制除法 带借位的二进制除法 根据余数减除数够减与否 确定商1还是商0 若够减则商1 否则商0 二进制模2除法 采用模2减法 不带借位的二进制减法 因此考虑余数够减除数与否
  • 制作论文中双Y轴散点图

    import pandas as pd import matplotlib pyplot as plt from matplotlib dates import AutoDateLocator DateFormatter from date