数学建模--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()

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

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

相关文章

jmeter性能测试常见的一些问题

一、request 请求超时设置 timeout 超时时间是可以手动设置的,新建一个 http 请求,在“高级”设置中找到“超时”设置,设置连接、响应时间为2000ms。 1. 请求连接超时,连不上服务器。 现象: Jmeter表现形式为&#xff…

3分钟:腾讯云免费SSL证书申请教程_免费HTTPS证书50张

2023腾讯云免费SSL证书申请流程,一个腾讯云账号可以申请50张免费SSL证书,免费SSL证书为DV证书,仅支持单一域名,申请腾讯云免费SSL证书3分钟即可申请成功,免费SSL证书品牌为TrustAsia亚洲诚信,腾讯云百科分享…

【MATLAB第74期】#源码分享 | 基于MATLAB的ARX-ARMAX线性自回归移动平均外生模型(结合最小二乘思路)

【MATLAB第74期】#源码分享 | 基于MATLAB的ARX-ARMAX线性自回归移动平均外生模型(结合最小二乘思路) 根据ARX预测输出和实际输出的误差向量,采用ARMAX算法结合ARX误差建模,对预测值进一步细化。通过将误差描述为白噪声的移动平均…

分享 8 个 VSCode 插件,提升你的编码体验

大多数开发者都在不断寻找让开发工作更轻松的方法,我也是如此。合适的工具可以帮助你实现这一目标。 在本文中,我们将探讨我个人使用的八个扩展,以优化我的编码体验。让我们来看看这些扩展的列表,亲自体验它们如何改善你的编码体验…

Feign负载均衡写法

Feign主要为了面向接口编程 feign是web service客户端,是接口实现的,而ribbon是通过微服务名字访问通过RestTemplate调用的,如下: 在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(类似…

成都瀚网科技有限公司:抖音商家怎么免费入驻?

随着抖音成为全球最受欢迎的短视频平台之一,越来越多的商家开始关注抖音上的商机。抖音商家的进驻可以帮助商家扩大品牌影响力和销售渠道。那么,如何免费进入抖音成为商家呢?下面就为大家介绍一下具体步骤。 1、抖音商家如何免费注册&#xf…

C++信息学奥赛1191:流感传染

一开始的代码自己运行测试代码怎么测试都是正确&#xff0c;但是一直提示答案错误 #include <iostream> using namespace std; int main() {int n;cin >> n;char arr[n][n];for (int i 0; i < n; i){for (int j 0; j < n; j){cin >> arr[i][j];}}in…

js如何实现数组去重的常用方法

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用 Set&#xff08;ES6&#xff09;⭐ 使用 filter 和 indexOf⭐ 使用 reduce⭐ 使用对象属性⭐ 使用 includes 方法&#xff08;ES6&#xff09;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方…

ElMessageBox.prompt 点击确认校验成功后关闭

ElMessageBox.prompt(, 验证取货码, {inputPattern: /^.{1,20}$/,inputErrorMessage: 请输入取货码,inputPlaceholder: 请输入取货码,beforeClose: (action, instance, done) > {if (action confirm) {if (instance.inputValue) {let flag false;if (flag) {done()} else …

css transition 指南

css transition 指南 在本文中&#xff0c;我们将深入了解 CSS transition&#xff0c;以及如何使用它们来创建丰富、精美的动画。 基本原理 我们创建动画时通常需要一些动画相关的 CSS。 下面是一个按钮在悬停时移动但没有动画的示例&#xff1a; <button class"…

OpenCV(十九):模板匹配

1.模板匹配&#xff1a; OpenCV提供了一个模板匹配函数&#xff0c;用于在图像中寻找给定模板的匹配位置。 2.图像模板匹配函数matchTemplate void matchTemplate( InputArray image, InputArray templ, OutputArray result, int method, InputArray mask noArray() ); image…

Golang复习

golang的特点 Golang 针对并发进行了优化&#xff0c;并且在规模上运行良好 自动垃圾收集明显比 Java 或 Python 更有效&#xff0c;因为它与程序同时执行 golang数据类型 基本数据类型&#xff08;值类型&#xff09; 布尔类型 数字类型 整型 根据有符号分为&#xff1a;…

C++this指针

本文旨在讲解C中this关键字&#xff0c;以及其相关作用&#xff01; 定义 this 是 C 中的一个关键字&#xff0c;也是一个 const 指针&#xff0c;它指向当前对象&#xff0c;通过它可以访问当前对象的所有成员。 this的介绍 下面来看一下关于this这个关键字的实例&#xff0…

input子系统框架、外设驱动开发

一、input子系统基本框架 Linux内核为了两个目的&#xff1a; 简化纯输入类外设&#xff08;如&#xff1a;键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等&#xff09;的驱动开发统一输入类外设产生的数据格式&#xff08;struct input_event&#xff09;&#xff0c;更加方…

深入学习与探索:高级数据结构与复杂算法

文章目录 学习高级数据结构B树&#xff1a;数据库引擎的骨干线段树&#xff1a;高效的区间查询Trie树&#xff1a;高效的字符串检索 探索复杂算法领域图算法&#xff1a;解决复杂网络问题字符串匹配算法&#xff1a;处理文本搜索近似算法&#xff1a;在NP难题上取得近似解 结论…

Autojs 小游戏实践-神农百草园

概述 最近一直再写刷视频软件脚本&#xff0c;比如手机视频软件太多&#xff0c;每天都需要手动提现羊毛&#xff0c;太累&#xff0c;使用使用Autojs来帮助我提现&#xff0c;签到&#xff0c;扯远了&#xff0c;因为做刷视频脚本感觉有点无聊&#xff0c;所以试着做小游戏找…

ESP32C3 LuatOS RC522②写入字符串

编写了字符串转16进制表函数 -- 将字符串转换为十六进制表 local function stringToHexTable(str)local hexTable {}local maxLength 16 -- 最大长度为16个元素-- 将字符串转换为十六进制for i 1, #str doif i > maxLength thenbreakendlocal hex string.format("…

HarmonyOS实现几种常见图片点击效果

一. 样例介绍 HarmonyOS提供了常用的图片、图片帧动画播放器组件&#xff0c;开发者可以根据实际场景和开发需求&#xff0c;实现不同的界面交互效果&#xff0c;包括&#xff1a;点击阴影效果、点击切换状态、点击动画效果、点击切换动效。 相关概念 image组件&#xff1a;图片…

d435i 相机和imu标定

一、IMU 标定 使用 imu_utils 功能包标定 IMU&#xff0c;由于imu_utils功能包的编译依赖于code_utils&#xff0c;需要先编译code_utils&#xff0c;主要参考 相机与IMU联合标定_熊猫飞天的博客-CSDN博客 Ubuntu20.04编译并运行imu_utils&#xff0c;并且标定IMU_学无止境的…

百度抓取香港服务器抓取超时是什么情况?

​ 网络延迟导致抓取超时 网络延迟是指从发送请求到接收响应之间的时间延迟。如果网络延迟过高&#xff0c;服务器可能无法及时响应请求&#xff0c;导致超时。在香港服务器上抓取数据时&#xff0c;如果网络延迟过高&#xff0c;可能会出现抓取超时的情况。 服务器负载过高可能…