Matplotlib图表定制:多子图和多图形展示

Matplotlib允许用户在同一图表中创建多个子图,以及在同一图表中显示多个图形。

在本篇文章中,我们将详细介绍这两种功能,并通过案例演示,帮助你更好地利用Matplotlib进行图表定制。

1、创建包含多个子图的图表

Matplotlib提供了plt.subplots方法,方便用户创建包含多个子图的图表。

以下是一个简单的例子,演示如何使用Matplotlib创建包含4个子图的图表

%matplotlib
import matplotlib.pyplot as plt
import numpy as np# 创建示例数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(2 * x)
y4 = np.cos(2 * x)
# 创建包含4个子图的图表
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))# 在第一个子图中绘制sin(x)曲线
axes[0, 0].plot(x, y1, label='sin(x)')
axes[0, 0].set_title('Sin')
axes[0, 0].legend()# 在第二个子图中绘制cos(x)曲线
axes[0, 1].plot(x, y2, label='cos(x)', color='orange')
axes[0, 1].set_title('Cos')
axes[0, 1].legend()# 在第三个子图中绘制sin(2x)曲线
axes[1, 0].plot(x, y3, label='sin(2x)', color='green')
axes[1, 0].set_title('Sin(2x)')
axes[1, 0].legend()# 在第四个子图中绘制cos(2x)曲线
axes[1, 1].plot(x, y4, label='cos(2x)', color='red')
axes[1, 1].set_title('Cos(2x)')
axes[1, 1].legend()# 调整子图之间的间距
plt.tight_layout()# 显示图表
plt.show()

其中nrows=2, ncols=2 分别表示子图的分布,2行2列;
axes[1, 1]是指定子图的位置,从0开始,axes[1, 1]表示第二行第二列的位置

在这里插入图片描述
同理如果想创建2X3的分布,那就nrows=2, ncols=3,且最后一个位置为axes[1, 2]

并且每个位置的子表类型随意,可以折线,柱状等。代码如下:


%matplotlib
import matplotlib.pyplot as plt
import numpy as np# 创建示例数据
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.sin(2 * x)
y4 = np.cos(2 * x)# 创建包含4个子图的图表
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(10, 8))# 在第一个子图中绘制sin(x)曲线
axes[0, 0].plot(x, y1, label='sin(x)')
axes[0, 0].set_title('Sin')
axes[0, 0].legend()# 在第二个子图中绘制cos(x)曲线
axes[0, 1].plot(x, y2, label='cos(x)', color='orange')
axes[0, 1].set_title('Cos')
axes[0, 1].legend()# 在第三个子图中绘制sin(2x)曲线
axes[1, 0].plot(x, y3, label='sin(2x)', color='green')
axes[1, 0].set_title('Sin(2x)')
axes[1, 0].legend()# 在第四个子图中绘制cos(2x)曲线
axes[1, 1].plot(x, y4, label='cos(2x)', color='red')
axes[1, 1].set_title('Cos(2x)')
axes[1, 1].legend()# 在第六个子图中绘制柱状图
# 生成示例数据
categories = ['A', 'B', 'C', 'D']
values = [3, 7, 2, 5]# 绘制柱状图
axes[1, 2].bar(categories, values, color='skyblue')
axes[1, 2].set_xlabel('category')
axes[1, 2].set_ylabel('value')
axes[1, 2].set_title('Histogram')# 调整子图之间的间距
plt.tight_layout()# 显示图表
plt.show()

第五个图没有绘制,所以是空的
在这里插入图片描述

2、在同一图表显示多个图形

Matplotlib允许用户在同一图表中显示多个图形,这可以通过多次调用绘图方法来实现。以下是一个示例:

%matplotlib
import matplotlib.pyplot as plt
import numpy as np# 示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)# 在同一图表中显示sin和cos曲线
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)', linestyle='dashed', color='orange')# 添加标题和图例
plt.title('Sin and Cos')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()plt.show()

在这里插入图片描述
在这个例子中,我们通过两次调用plt.plot方法,在同一图表中绘制了sin和cos曲线,并设置了标题和图例。

通过这两种方法,你可以更灵活地组织和展示你的数据,使图表更具信息性。

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

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

相关文章

2022年03月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共10题,每题2分,共30分) 第1题 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数?注意:每一位都不相同,最高位不能为0。 A:720 B:360 C:312 D:88 答案:C 逻辑知识单选题 第2题 运行以下程…

Go 接口:nil接口为什么不等于nil?

一、Go 接口的地位 Go 语言核心团队的技术负责人 Russ Cox 也曾说过这样一句话:“如果要从 Go 语言中挑选出一个特性放入其他语言,我会选择接口”,这句话足以说明接口这一语法特性在这位 Go 语言大神心目中的地位。 为什么接口在 Go 中有这么…

pycharm全网最新安装教程(附加activation code),支持2018-2023版本

官网地址Download PyCharm: Python IDE for Professional Developers by JetBrains 下载的话无脑下载安装即可! 2018.2~2023版本用这个,最新的activation code码 2018.1以下版本用这个 老是审核不通过只能贴图片了(T-T)

matlab频谱合成音乐《追光者》

选择你喜欢的一首钢琴曲,下载并分析曲谱,用matlab工具用频谱合成方法完成这首曲子的音乐合成。 前言:此文章为个人使用Matlab合成一首《追光者》音乐,且带混响和声效果 文章目录 一.题目二.要求三.课程设计目的四.概要设计五.详细…

解锁领先的有限元分析软件ABAQUS:不同版本功能特点及价格

随着科学技术的飞速发展,工程领域对于高效可靠的仿真软件需求日益增长。ABAQUS作为有限元分析领域的佼佼者,为工程师提供了强大而灵活的工具,用于模拟和分析复杂的结构和材料行为。本文将深入介绍ABAQUS的概念、不同版本的特点、功能区别、定…

vue3默认插槽、具名插槽以及作用域插槽实现父子组件通信

默认插槽与具名插槽 父组件 <template><div><h1>我是父组件</h1><child><div style"color: red">我是从父元素插入的值(默认插槽)</div><template #juming><div style"color: green">我是从父元素…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

AB|如何正确从罗克韦尔官网下载资料?

哈喽呀&#xff0c;大家好&#xff0c;我是雷工&#xff01; 作为工控行业的从业者&#xff0c;可能要和各个厂家的中控系统、PLC、触摸屏、变频器、等软硬件产品打交道。 虽然从业十余年&#xff0c;但也不可能接触使用过所有的工控产品。还有海量的产品是没有接触过的。 但很…

Programming Abstractions in C阅读笔记:p202-p234

《Programming Abstractions in C》学习第65天&#xff0c;p202-p234总结。 一、技术总结 完成第五章学习&#xff0c;第五章介绍递归在实际问题中的进一步应用&#xff0c;例如汉诺塔问题&#xff0c;数学中的排列问题&#xff0c;更有难度。使用递归解决问题时有时候需要借…

TOD和PPS精确时间同步技术

介绍 PPS和TOD PPS和TOD是两种用于精确时间同步的技术&#xff0c;它们在许多领域都有广泛的应用&#xff0c;总的来说&#xff0c;PPS和TOD被广泛应用于各种需要高度精确时间同步的领域&#xff0c;包括通信、测量、测试、系统集成和计算机网络等。 一、PPS PPS&#xff08…

【专题】支持向量机(Support Vector Machines,SVM)

​​​​​ ​​ 支持向量机&#xff08;Support Vector Machines&#xff0c;SVM&#xff09;是一种强大的监督学习模型&#xff0c;常用于分类、回归和异常值检测任务。它的核心思想是通过构建一个最大间隔超平面来有效地分隔不同类别的数据点。 在SVM中&#xff0c;数据点…

Mysql8.1.0 安装问题-缺少visual studio 2019x64组件

缺少visual studio x64组件的问题 使用Mysql8以上的安装包mysql-8.1.0-winx64.msi进行安装&#xff0c; 提示缺少visual studio 2019 x64可再发行组件 在微软官网下载vc可再发行程序包 Microsoft Visual C 可再发行程序包最新支持的下载 在Visual Studio 2015、2017、2019 和…

使字符串的单词倒序输出表示

题目 任务描述 本关任务&#xff1a;请实现函数 revWordoder&#xff0c;能够将 pa 指向的单词表字符串中的所有单词&#xff0c;按相反顺序放入 pb&#xff0c;同时去除多余的空格&#xff0c;单词之间只留一个空格. 例如 pa 中为 red blue, 则调用函数后&#xff0c;pb 中为b…

MIT线性代数笔记-第17讲-正交矩阵,Schmidt正交化

目录 17.正交矩阵&#xff0c; S c h m i d t Schmidt Schmidt正交化打赏 17.正交矩阵&#xff0c; S c h m i d t Schmidt Schmidt正交化 “标准”经常表示单位长度 标准正交基&#xff1a;由两两正交的单位向量组成的基 将标准正交基中的元素记作 q ⃗ 1 , q ⃗ 2 , ⋯ , q …

基于FactoryBean、实例工厂、静态工厂创建Spring中的复杂对象

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

会声会影2024旗舰版系统配置要求及格式支持

会声会影2024旗舰版是一款广受欢迎的视频编辑软件&#xff0c;它的最新版本&#xff0c;会声会影2023&#xff0c;已经发布。在这篇文章中&#xff0c;我们将探讨会声会影2024旗舰版系统配置要求及格式支持 会声会影2024是一款专业的视频剪辑软件&#xff0c;能够帮助用户制作高…

geemap学习笔记016:获取图像的基本属性和描述性信息

前言 遥感数据中通常包含众多信息&#xff0c;例如图像获取的时间、云覆盖量、以及每个波段的最大值最小值等等。 1 导入库并显示地图 import ee import geemapMap geemap.Map() Map2 添加图像数据 centroid ee.Geometry.Point([-122.4439, 37.7538]) #创建一个点坐标lan…

springcloud==openfeign

单独使用 创建一个服务端 import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.Path…

浅析函数防抖节流

防抖和节流都是前端开发中常用的优化性能的技术。 一、定义 防抖&#xff1a; 防抖指的是在事件触发后&#xff0c;在规定的时间内若再次触发&#xff0c;则重新计时&#xff0c;直到规定时间内没有再次触发事件&#xff0c;才执行事件处理。这样可以避免在短时间内频繁地触发…

Redis实战命令

实战命令 单值缓存 set key value get key 对象缓存 &#xff08;1&#xff09;set user:1 value(json格式) &#xff08;2&#xff09;mset user:1:name junfeng user:1:age 18 mget user:1:name user:1:age 分布式锁 分布式锁解决了什么问题&#xff1f; 分布式锁解…