数学建模--Subplot绘图的Python实现
目录
1.Subplot函数简介
2.Subplot绘图范例1:绘制规则子图
3.Subplot绘图范例2:绘制不规则子图
4.Subplot绘图范例3:gridspec辅助实战1
5.Subplot绘图范例4:gridspec辅助实战2
1.Subplot函数简介
"""
最近在数学建模种需要绘制多张子图,发现对于subplot函数的运用还不熟练
所以我们利用subplot绘制几张图片感受一下
""""""
subplot()的函数定义如下所示:
matplotlib.pyplot.subplot(*args, **kwargs)
#调用格式说明
subplot(nrows, ncols, index, **kwargs)
subplot(pos, **kwargs)
subplot(**kwargs)
subplot(ax)
其实也没什么特别的,只要知道怎么划分子图即可
"""
2.Subplot绘图范例1:绘制规则子图
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
fig=plt.figure(figsize=(15,6))
fig.suptitle('Subplot Function Figrue 1')
x=[0,1,2,3]
y=[1,2,3,4]
y1=[1,4,9,16]
#分成8个子图
plt.subplot(2,4,1) #占据第一个位置
plt.plot(y,color='r')
plt.subplot(2,4,2) #占据第二个位置
plt.scatter(x,y,color='g',s=16,marker='*')
plt.subplot(2,4,3) #占据第三个位置
plt.plot(x,y1,color='b')
plt.subplot(2,4,4) #占据第四个位置
plt.scatter(x,y1,color='b',s=9)
x_1= np.random.normal(0, 1, 200)
y_1 = np.random.normal(0, 1, 200)
z = np.random.normal(10, 2, 200)plt.subplot(2,4,5) #占据第五个位置
plt.scatter(x_1,y_1,c=z,cmap='rainbow',s=9)plt.subplot(2,4,6) #占据第6个位置
plt.scatter(x_1,y_1,c=z,cmap='coolwarm',s=9)plt.subplot(2,4,7) #占据第7个位置
plt.scatter(x_1,y_1,c=z,cmap='prism',s=9)plt.subplot(2,4,8) #占据第8个位置
plt.scatter(x_1,y_1,c=z,cmap='summer',s=9)
plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\Figure\Subplot Function Figrue 1.png')
plt.show()

3.Subplot绘图范例2:绘制不规则子图
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号fig = plt.figure()
fig.suptitle('自主设计位置分布图')
x= np.random.normal(0, 1, 200)
y = np.random.normal(0, 1, 200)
z = np.random.normal(10, 2, 200)
#将图片分成3行3列,其占第一个位置
plt.subplot(3,3,1)
plt.scatter(x,y,c=z,cmap='coolwarm',s=9)
#将图片分成3行2列,其占第三个位置
plt.subplot(3,2,3)
plt.scatter(x,y,c=z,cmap='prism',s=9)
#将图片分成3行1列,其占第三个位置
plt.subplot(3,1,3)
plt.scatter(x,y,c=z,cmap='summer',s=9)
plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\Figure\自主设计位置分布图.png')
plt.show()

4.Subplot绘图范例3:gridspec辅助实战1
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspecplt.rcParams["font.sans-serif"] = ["SimHei"]
x_month = np.array(['1月', '2月', '3月', '4月', '5月', '6月'])
y_sales = np.array([2150, 1050, 1560, 1480, 1530, 1490])
x=np.array([1,2,3,4,5,6])
# 创建画布和布局 num:图形名称 figsize(5,5) 长宽就是5
fig = plt.figure(num=1, figsize=(5, 5))
# 在画布上添加 :虚拟的gridspec网格规范 (3行3列)
gs = fig.add_gridspec(3, 3)
# 在画布上添加:子图 (子图位置第0行 和第1列 第2列 第3列交集)
ax_one = fig.add_subplot(gs[0, :])
# 第1个子图
ax_one.bar(x_month, y_sales, width=0.5, color='#3299CC')
ax_one.set_title('2022年上半年某品牌汽车的销售额(模拟数据)')
ax_one.set_ylabel('销售额(亿元)')ax_two=fig.add_subplot(gs[1:,0:2])
ax_two.scatter(x,y_sales,marker='*',color='r')
ax_two.set_ylabel('销售额(亿元)')ax_thr=fig.add_subplot(gs[1:,2])
ax_thr.plot(x,y_sales,marker='*',color='g')
ax_thr.set_yticks([])plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\Figure\2022年上半年某品牌汽车的销售额.png')
plt.show()

5.Subplot绘图范例4:gridspec辅助实战2
#利用gs来满足实际绘制的大部分要求
%matplotlib inline
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
import numpy as npx= np.random.normal(0, 1, 200)
y = np.random.normal(0, 1, 200)
z = np.random.normal(10, 2, 200)
# 创建一个2x2的网格,第一个子图占据整个第一行,第二个子图占据第一行的后两列
gs = gridspec.GridSpec(2, 2, width_ratios=[1, 2])
ax1 = plt.subplot(gs[0, :])
ax2 = plt.subplot(gs[1, 0])
ax3 = plt.subplot(gs[1, 1])# 在第一个子图中绘制
ax1.scatter(x,y,c=z,cmap='prism',label='prism',s=9)
ax1.set_xticks([])
ax1.set_yticks([])
ax1.legend()
# 在第二个子图中绘制一个散点图
ax2.scatter(x,y,c=z,cmap='summer',label='summer',s=9)
ax2.set_xticks([])
ax2.set_yticks([])
ax2.legend()# 在第三个子图中绘制一个柱状图
ax3.scatter(x,y,c=z,cmap='coolwarm',label='coolwarm',s=9)
ax3.set_xticks([])
ax3.set_yticks([])
ax3.legend()
plt.savefig(r'C:\Users\Zeng Zhong Yan\Desktop\py.vs\.vscode\数学建模\Figure\gs划分方法绘图.png')
# 显示图形
plt.show()

相关文章:
数学建模--Subplot绘图的Python实现
目录 1.Subplot函数简介 2.Subplot绘图范例1:绘制规则子图 3.Subplot绘图范例2:绘制不规则子图 4.Subplot绘图范例3:gridspec辅助实战1 5.Subplot绘图范例4:gridspec辅助实战2 1.Subplot函数简介 """ 最近在数学建模种需要绘制多张子图,发现对于subplot函…...
JMeter(三十九):selenium怪异的UI自动化测试组合
文章目录 一、背景二、JMeter+selenium使用过程三、总结一、背景 题主多年前在某社区看到有人使用jmeter+selenium做UI自动化测试的时候,感觉很是诧异、怪异,为啥?众所周知在python/java+selenium+testng/pytest这样的组合框架下,为啥要选择jmeter这个东西[本身定位是接口测…...
c++ 移动构造方法为什么要加noexcept
背景: 最近看了候捷老师的c的教程, 他说移动构造方法要加noexcept, 在vector扩容的时候, 如果有移动构造方法没有加noexcept,是不会调用的. 个人感觉有些神奇, 这就去查下一探究竟. 过程: 测试代码如下: #include <iostream> #include <vector> struct A {A(){s…...
鸿鹄工程项目管理系统 Spring Cloud+Spring Boot+前后端分离构建工程项目管理系统
工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&am…...
手把手教你搭建园林园艺小程序商城
现如今,随着互联网的快速发展,小程序成为了企业和个人展示产品和服务的新方式。在园林园艺行业,构建一个园林园艺小程序能够更好地推广和销售自己的产品和服务。那么,如何构建一个园林园艺小程序呢?下面我们来详细介绍…...
Java Iterator(迭代器)
Java迭代器(Iterator)是 Java 集合框架中的一种机制,是一种用于遍历集合(如列表、集合和映射等)的接口。 它提供了一种统一的方式来访问集合中的元素,而不需要了解底层集合的具体实现细节。 Iterator 是 …...
Logstash同步MySQL数据到ElasticSearch
当MySQL数据到一定的数量级,而且索引不能实现时,查询就会变得非常缓慢,所以使用ElasticSearch来查询数据。本篇博客介绍使用Logstash同步MySQL数据到ElasticSearch,再进行查询。 测试环境 Windows系统MySQL 5.7Logstash 7.0.1El…...
【C++】运算符重载的示例实现和应用
C运算符重载的格式: operator 运算符 比如要重载 ! 运算符 : operator ! 下面是一个例子: class DemoText{DemoText(string str, int num){m_text str; m_number num;}string m_text;int m_number; }这里来定义两个对象:…...
Kubernetes禁止调度
在Kubernetes中,您可以通过几种方式来禁止某个Pod调度到节点上。以下是一些方法: Node Selector:您可以使用Node Selector来限制Pod只能调度到带有特定标签的节点上。如果您希望完全禁止Pod调度到某些节点上,可以确保这些节点不拥…...
CocosCreator3.8研究笔记(七)CocosCreator 节点和组件的介绍
相信很多新手朋友,肯定会问,CocosCreator 中什么是节点?什么是组件? 一、什么是组件(Component)? Cocos Creator 3.8 的工作流程是以组件式开发为核心,即以组合而非继承的方式进行游…...
Ceph入门到精通-C++入门知识点
C中的双冒号(::)是作用域分解运算符(scope resolution operator)。 它主要有以下两种用法: 用于区分同名的不同成员,例如在不同类中声明了同名的成员函数或成员变量,可以使用A::B的方式来特指A类的B成员。当全局变量…...
Ansible之playbook详解和应用实例
目录 一、playbook简介 1.什么是playbook 2.playbook组成 二、应用实例 1.使用playbook安装启用httpd服务 2.使用playbook安装启用nginx服务 三、ansible-playbook其他用法 1.检查yaml文件的语法是否正确 2.检查tasks任务 3.检查指定的主机 4.指定从某个task开始运行…...
经验萃取方法
【经验萃取】 经验萃取不是简单的总结提炼归纳! 经验萃取需经过还原、复盘分析、萃取重构 一.经验萃取前三个准备 1.定主题: 萃取主题选择(阐述原因、确定级别、差距/问题是源头)->多维评分:普遍性、重要性、迫切…...
手写apply方法
<script>/** 手写apply方法 * */Function.prototype.myApply function (context, args) {console.log(this, sss)//fnconst key Symbol()context[key] thiscontext[key](...args)delete context[key]return context[key]}const obj {name: zs,age: 18}function fn …...
Jenkins实现基础CD操作
操作截图 在Jenkins里面设置通过标签进行构建 在Jenkins中进入项目,配置以下 将execute shell换到invoke top-level maven targets之前 在gitlab中配置标签 代码迭代新的版本 项目代码迭代 修改docker-compose.yml 提交新版本的代码 在Jenkins中追加新…...
开源软件合集(Docker)
Docker安装 1.安装命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun2.启动:systemctl start docker3.停止:systemctl stop docker4.重启:systemctl restart docker5.开机启动:systemctl enab…...
Ceph入门到精通-生产日志级别设置
Ceph 子系统及其日志记录级别的信息。 了解 Ceph 子系统及其日志记录级别 Ceph 由多个子系统组成: 每个子系统都有其日志记录级别: 默认情况下存储在 /var/log/ceph/ 目录中的输出日志(日志级别)存储在内存缓存中的日志&#…...
16-MyCat
一 Mycat概述 1 什么是Mycat 什么是Mycat Mycat是数据库中间件,所谓数据库中间件是连接Java应用程序和数据库中间的软件。 为什么要用Mycat 遇到问题: Java与数据库的紧耦合高访问量高并发对数据库的压力读写请求数据不一致 2 Mycat与其他中间件区别 目…...
RKNPU2通用API和零拷贝API
RKNPU2通用API 通用API接口按照异构编程规范,需要将数据拷贝到NPU运行时的内存空间。 通用API部署流程 初始化上下文,需要先创建上下文对象和读取模型文件 rknn_context ctx; model load_model(model_path, &model_len); ret rknn_init(&ctx…...
LeetCode 1123. 最深叶节点的最近公共祖先:DFS
【LetMeFly】1123.最深叶节点的最近公共祖先 力扣题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-deepest-leaves/ 给你一个有根节点 root 的二叉树,返回它 最深的叶节点的最近公共祖先 。 回想一下: 叶节点 是二叉树…...
测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
