python画出2行4列个子图

代码

import matplotlib.pyplot as plt# 数据
areas = [50, 80, 120]
shenzhen_prices = [1500, 2000, 2500]
guangzhou_prices = [1200, 1800, 2300]
zhengzhou_prices = [800, 1200, 1500]# 创建一个包含2行4列共8个子图的图表
fig, axs = plt.subplots(2, 4, figsize=(14, 8))def draw_three_linegraph(ax,x,S,H,U,x_begin,x_end,y_begin,y_end,x_label):# 创建折线图ax.plot(x, S, label='S', color='green', marker='^',linewidth=2.0)ax.plot(x, H, label='H', color='orange', marker='s',linewidth=2.0)ax.plot(x, U, label='U', color='blue', marker='o',linewidth=2.0)# 设置图表标题和轴标签ax.set_xlabel(x_label)ax.set_ylabel('Accuracy(%)')# 设置图例ax.legend()# 设置坐标轴范围ax.set_xlim(x_begin, x_end)ax.set_ylim(y_begin, y_end)# 显示网格线ax.grid(True)# 保存图表为图像文件(例如PNG)# plt.savefig('house_prices_plot.png')# 显示图表# plt.show()'''CUB第一个图'''
result_S2,result_H2,result_U2 = [69.72, 68.93, 70.3, 70.28, 69.72],[67.69, 67.72, 68.4, 67.94, 67.86],[65.78, 66.56, 66.6, 65.76, 66.09]
x_CUB = [0.3,0.4,0.5,0.6,0.7]
# x_CUB_begin, x_CUB_end = 0.2,0.9
x_CUB_begin, x_CUB_end = 0.3,0.7
# y_CUB_begin, y_CUB_end = 65, 72
y_CUB_begin, y_CUB_end = 64, 72
x_label = 'visual-semantic contrastive generation loss weight λ₁'
draw_three_linegraph(axs[0,0],x_CUB,result_S2,result_H2,result_U2,x_CUB_begin,x_CUB_end,y_CUB_begin,y_CUB_end,x_label)'''CUB第二个图'''
result_S2,result_H2,result_U2 = [68.39, 70.3, 69.6, 69.87, 69.0],[67.13, 68.4, 67.53, 67.64, 67.67],[65.92, 66.6, 65.58, 65.54, 66.39]
x_CUB = [0.5,1,1.5,2,2.5]
# 设置x和y的坐标轴范围
x_CUB_begin, x_CUB_end = 0.5,2.5
# x_CUB_begin, x_CUB_end = 0.5,2.5
y_CUB_begin, y_CUB_end = 64, 72
x_label = 'regressor loss weight λ₂'
draw_three_linegraph(axs[0,1],x_CUB,result_S2,result_H2,result_U2,x_CUB_begin,x_CUB_end,y_CUB_begin,y_CUB_end,x_label)'''CUB第三个图'''
result_S2,result_H2,result_U2 = [69.12, 68.66, 68.9, 70.3, 69.76],[67.24, 67.06, 67.14, 68.4, 67.13],[65.46, 65.54, 65.47, 66.6, 64.69]
x_CUB = [0.3,0.4,0.5,0.6,0.7]
# 设置x和y的坐标轴范围
x_CUB_begin, x_CUB_end = 0.3,0.7
y_CUB_begin, y_CUB_end = 64, 72
x_label = 'semantic fusion loss weight λ₃'
draw_three_linegraph(axs[0,2],x_CUB,result_S2,result_H2,result_U2,x_CUB_begin,x_CUB_end,y_CUB_begin,y_CUB_end,x_label)'''CUB第四个图'''
result_S2,result_H2,result_U2 = [68.41, 69.77, 70.3, 69.19, 70.0],[67.19, 67.9, 68.4, 67.17, 67.89],[66.02, 66.13, 66.6, 65.27, 65.91]
x_CUB = [0.1,0.2,0.3,0.4,0.5]
# 设置x和y的坐标轴范围
x_CUB_begin, x_CUB_end = 0.1,0.5
y_CUB_begin, y_CUB_end = 64, 72
x_label = 'discriminator loss weight λ₄'
draw_three_linegraph(axs[0,3],x_CUB,result_S2,result_H2,result_U2,x_CUB_begin,x_CUB_end,y_CUB_begin,y_CUB_end,x_label)'''FLO第一个图'''
resultS2,resultH2,resultU2 = [87.97, 86.9, 87.0, 88.4, 86.78, 86.4],[70.28, 70.08, 69.99, 71.27, 69.4, 68.98],[58.51, 58.72, 58.54, 59.7, 57.82, 57.4]
x_FLO = [0.3,0.4,0.5,0.6,0.7,0.8]
# 设置x和y的坐标轴范围
x_FLO_begin, x_FLO_end = 0.3,0.8
# y_FLO_begin, y_FLO_end = 40, 110
y_FLO_begin, y_FLO_end = 50, 100
x_label = 'visual-semantic contrastive generation loss weight λ₁'
draw_three_linegraph(axs[1,0],x_FLO,resultS2,resultH2,resultU2,x_FLO_begin,x_FLO_end,y_FLO_begin,y_FLO_end,x_label)'''FLO第二个图'''
resultS2,resultH2,resultU2 = [84.3, 86.46, 86.47, 86.27, 88.4, 87.19],[68.56, 70.23, 68.66, 68.68, 71.27, 69.84],[57.77, 59.13, 56.93, 57.05, 59.7, 58.25]
x_FLO = [14,15,16,17,18,19]
# 设置x和y的坐标轴范围
x_FLO_begin, x_FLO_end = 14,19
# y_FLO_begin, y_FLO_end = 40, 110
y_FLO_begin, y_FLO_end = 50, 100
x_label = 'regressor loss weight λ₂'
draw_three_linegraph(axs[1,1],x_FLO,resultS2,resultH2,resultU2,x_FLO_begin,x_FLO_end,y_FLO_begin,y_FLO_end,x_label)'''FLO第三个图'''
resultS2,resultH2,resultU2 = [87.36, 85.69, 88.4, 86.44, 86.36, 84.86],[70.36, 70.14, 71.27, 68.52, 68.93, 69.7],[58.9, 59.37, 59.7, 56.76, 57.36, 59.14]
x_FLO = [0.3,0.4,0.5,0.6,0.7,0.8]
# 设置x和y的坐标轴范围
x_FLO_begin, x_FLO_end = 0.3,0.8
# y_FLO_begin, y_FLO_end = 40, 110
y_FLO_begin, y_FLO_end = 50, 100
x_label = 'semantic fusion loss weight λ₃'
draw_three_linegraph(axs[1,2],x_FLO,resultS2,resultH2,resultU2,x_FLO_begin,x_FLO_end,y_FLO_begin,y_FLO_end,x_label)'''FLO第四个图'''
resultS2,resultH2,resultU2 = [87.38, 87.59, 88.4, 85.77, 86.74, 85.64],[70.72, 70.44, 71.27, 69.06, 70.3, 69.49],[59.39, 58.9, 59.7, 57.8, 59.1, 58.47]
x_FLO = [1,2,3,4,5,6]
# 设置x和y的坐标轴范围
x_FLO_begin, x_FLO_end = 1,6
# y_FLO_begin, y_FLO_end = 40, 110
y_FLO_begin, y_FLO_end = 50, 100
x_label = 'discriminator loss weight λ₄'
draw_three_linegraph(axs[1,3],x_FLO,resultS2,resultH2,resultU2,x_FLO_begin,x_FLO_end,y_FLO_begin,y_FLO_end,x_label)# 调整子图布局
plt.tight_layout()# 保存图表为图像文件(例如PNG)
plt.savefig('2_4_figure_2.0.png')
# 显示图表
plt.show()

效果

请添加图片描述

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

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

相关文章

一文搞懂Transformer

近期Transformer系列模型的出现,增加了CV领域的多样性。但是Transformer这一不同领域的模型对学习者来说需要一个细致的学习过程.下面就是本菜鸟总结学习路线。 Transformer是基于attention机制。而attention机制又在Encoder、Decode中。本篇博客将从Attention->…

sqli-labs(Less-3)

1. 通过构造id1’ 和id1’) 和id1’)–确定存在注入 可知原始url为 id(‘1’) 2.使用order by 语句猜字段数 http://127.0.0.1/sqlilabs/Less-3/?id1) order by 4 -- http://127.0.0.1/sqlilabs/Less-3/?id1) order by 3 --3. 使用联合查询union select http://127.0.0.1…

Sentinel 流控规则

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 SpringbootDubboNacos 集成 Sentinel&…

探索未来,开启无限可能:打造智慧应用,亚马逊云科技大语言模型助您一臂之力

文章目录 什么是大模型?大模型训练方法亚马逊云科技推出生成式AI新工具 —— aws toolkit使用教程 总结 什么是大模型? 近期,生成式大模型是人工智能领域的研究热点。这些生成式大模型,诸如文心一言、文心一格、ChatGPT、Stable …

文心生物计算大模型重磅升级,构象预测准确度全面提升!

文心生物计算大模型家族又迎来了重磅的升级:蛋白质-小分子对接构象预测模型HelixDock,以及蛋白-蛋白复合物结构预测模型HelixFold-Multimer准确度全面提升。这两项新技术可以大幅提升蛋白质-小分子的对接构象及蛋白-蛋白复合物结构预测的精度&#xff0c…

《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用

前言: 我们需要先由一个 QGraphicsView,这个是UI显示的地方,也就是装满可见原色的Scene,然后需要一个QGraphicsScene 用来管理所有可见的界面元素,要实现UI功能,我们需要用各种从QGraphicsItem拼装成UI控件…

Flutter笔记:使用Flutter构建响应式PC客户端/Web页面-案例

Flutter笔记 使用Flutter构建响应式PC客户端/Web页面-案例 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/detai…

CentOS7.9安装docker

在CentOS 7.9上安装Docker可以通过官方的Docker安装脚本或者使用系统包管理工具来完成 本次使用系统包管理工具 打开终端,以root权限登录系统。 安装所需的依赖: yum install -y yum-utils device-mapper-persistent-data lvm2 添加Docker的官方仓库…

【java学习—十四】反射机制调用指定方法、指定属性(5)

文章目录 1. 调用指定方法2. 调用指定属性 1. 调用指定方法 通过反射,调用类中的方法,通过 Method 类完成。步骤:     ①通过 Class 类的 getMethod(String name,Class...parameterTypes) 方法取得一个 Method 对象,并设置此…

前端算法面试之堆排序-每日一练

如果对前端八股文感兴趣,可以留意公重号:码农补给站,总有你要的干货。 今天分享一个非常热门的算法--堆排序。堆的运用非常的广泛,例如,Python中的heapq模块提供了堆排序算法,可以用于实现优先队列&#xf…

ALPC_Natural_Selection

刚刚结束的ICPC2023沈阳是自然选择号的最后一场 XCPC 区域赛,很高兴也很幸运能拿到校排名 rk4,圆了一个这半年才开始做的梦。在这里讲一下这支队伍的故事。 组队、训练 本来和wjy666(aka maple)打完 EC Final 之后是想要退役的&…

【视觉SLAM十四讲学习笔记】第二讲——初识SLAM

专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲 一个机器人,如果想要探索某一块区域,它至少需要知道两件事: 我在什么地方——定位周围环境是什么样——建图 一方面需要明白自身的状态(即位置)&#…