【数据分析之道-Matplotlib(三)】Matplotlib 绘制子图

article/2025/9/22 9:56:06

在这里插入图片描述

文章目录

  • 专栏导读
  • 1、前言
  • 2、subplot()函数
    • 2.1创建一个包含 2x2 的子图布局,并在每个子图中绘制不同的图形
    • 2.2创建一个包含 1x3 的子图布局,并绘制三种不同类型的图形
    • 2.3创建一个包含 2 行 1 列的子图布局,绘制散点图和柱状图
  • 3、subplots()函数
    • 3.1创建一个包含 2 行 2 列的子图布局,并在每个子图中绘制不同类型的图形
    • 3.2创建一个包含 1 行 3 列的子图布局,绘制散点图和柱状图
    • 3.3创建一个包含 2 行 2 列的子图布局,绘制多种不同的图形
  • 4、random函数绘制多种不一样的子图
  • 5、matplotlib相关图书推荐
    • 5.1内容简介
    • 5.2作者简介

专栏导读

✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》
😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪

1、前言

Matplotlib支持多种绘制多图的方法,其中最常用的是subplot和subplots函数。subplot函数可以将一个图像分成若干个小区域,并在其中绘制子图,而subplots函数可以一次性创建多个子图,并返回一个包含所有子图的数组对象。在绘制多图时,我们可以通过调整子图的排列方式、大小、间距等参数来满足不同的需求,从而使得图像更加美观、直观、易于理解。
在这里插入图片描述

2、subplot()函数

subplot 函数是 Matplotlib 库中用于创建子图的函数。它允许在一个图形窗口中创建多个子图,并指定子图的布局。

subplot 函数的语法如下:

subplot(nrows, ncols, index, **kwargs)

参数说明:

  • nrows:表示子图布局的行数。
  • ncols:表示子图布局的列数。
  • index:表示当前子图在布局中的索引。索引从左上角开始,从左到右,从上到下递增。可以使用整数或元组 (row, col, index) 来指定索引。
  • **kwargs:可选参数,用于设置子图的其他属性。

2.1创建一个包含 2x2 的子图布局,并在每个子图中绘制不同的图形

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.tan(x)
y4 = np.exp(x)# 创建子图布局
plt.subplot(2, 2, 1)
plt.plot(x, y1)
plt.title('Sin(x)')plt.subplot(2, 2, 2)
plt.plot(x, y2)
plt.title('Cos(x)')plt.subplot(2, 2, 3)
plt.plot(x, y3)
plt.title('Tan(x)')plt.subplot(2, 2, 4)
plt.plot(x, y4)
plt.title('Exp(x)')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

我们创建了一个 2x2 的子图布局,共有四个子图。在每个子图中,我们使用 subplot 函数指定子图的位置,然后分别绘制了不同的图形。

2.2创建一个包含 1x3 的子图布局,并绘制三种不同类型的图形

import matplotlib.pyplot as plt
import numpy as np# 创建数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.exp(-x)
y3 = np.log(x)# 创建子图布局
plt.subplot(1, 3, 1)
plt.plot(x, y1)
plt.title('Sin(x)')plt.subplot(1, 3, 2)
plt.plot(x, y2)
plt.title('Exp(-x)')plt.subplot(1, 3, 3)
plt.plot(x, y3)
plt.title('Log(x)')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

2.3创建一个包含 2 行 1 列的子图布局,绘制散点图和柱状图

import matplotlib.pyplot as plt
import numpy as np# 创建数据
np.random.seed(0)
x = np.arange(1, 11)
y1 = np.random.randint(1, 10, size=10)
y2 = np.random.randint(1, 10, size=10)# 创建子图布局
plt.subplot(2, 1, 1)
plt.scatter(x, y1, color='r')
plt.title('Scatter Plot')plt.subplot(2, 1, 2)
plt.bar(x, y2, color='b')
plt.title('Bar Plot')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

我们创建了一个包含 2 行 1 列的子图布局,总共有两个子图。在第一个子图中,我们使用 scatter 函数绘制了散点图,展示了随机生成的点的分布。在第二个子图中,我们使用 bar 函数绘制了柱状图,展示了另一组随机生成的数据。
使用 subplot 函数指定子图的位置和布局,然后在每个子图中绘制了不同类型的图形。最后,使用 tight_layout 函数调整子图之间的间距,并通过 show 函数显示图形。

3、subplots()函数

subplots 函数是 Matplotlib 库中用于创建多个子图的函数。它可以方便地创建包含多个子图的图形窗口,并提供更灵活的子图布局选项。

subplots 函数的语法如下:

subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, **fig_kw)

参数说明:

  • nrows:表示子图布局的行数,默认为 1。
  • ncols:表示子图布局的列数,默认为 1。
  • sharex:设置是否共享 x 轴刻度,默认为 False。
  • sharey:设置是否共享 y 轴刻度,默认为 False。
  • squeeze:设置是否自动压缩子图布局,默认为 True。
  • **fig_kw:可选参数,用于设置图形窗口的其他属性。

3.1创建一个包含 2 行 2 列的子图布局,并在每个子图中绘制不同类型的图形

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.tan(x)
y4 = np.exp(x)# 创建子图布局
fig, axs = plt.subplots(2, 2, figsize=(8, 6))# 子图1
axs[0, 0].plot(x, y1)
axs[0, 0].set_title('Sin(x)')# 子图2
axs[0, 1].plot(x, y2)
axs[0, 1].set_title('Cos(x)')# 子图3
axs[1, 0].plot(x, y3)
axs[1, 0].set_title('Tan(x)')# 子图4
axs[1, 1].plot(x, y4)
axs[1, 1].set_title('Exp(x)')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

我们使用 subplots 函数创建了一个包含 2 行 2 列的子图布局,并返回了一个包含子图对象的数组 axs。在每个子图中,我们通过索引 axs[row, col] 访问子图对象,并在每个子图中绘制了不同类型的图形。

3.2创建一个包含 1 行 3 列的子图布局,绘制散点图和柱状图

import matplotlib.pyplot as plt
import numpy as np# 创建数据
np.random.seed(0)
x = np.arange(1, 11)
y1 = np.random.randint(1, 10, size=10)
y2 = np.random.randint(1, 10, size=10)# 创建子图布局
fig, axs = plt.subplots(1, 3, figsize=(12, 4))# 子图1 - 散点图
axs[0].scatter(x, y1, color='r')
axs[0].set_title('Scatter Plot')# 子图2 - 柱状图
axs[1].bar(x, y2, color='b')
axs[1].set_title('Bar Plot')# 子图3 - 折线图
axs[2].plot(x, y1, color='g')
axs[2].plot(x, y2, color='m')
axs[2].set_title('Line Plot')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

3.3创建一个包含 2 行 2 列的子图布局,绘制多种不同的图形

import matplotlib.pyplot as plt
import numpy as np# 创建数据
np.random.seed(0)
x = np.linspace(0, 5, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)# 创建子图布局
fig, axs = plt.subplots(2, 2, figsize=(10, 8))# 子图1 - 折线图
axs[0, 0].plot(x, y1, color='r')
axs[0, 0].set_title('Sin(x)')# 子图2 - 散点图
axs[0, 1].scatter(x, y2, color='g')
axs[0, 1].set_title('Cos(x)')# 子图3 - 柱状图
axs[1, 0].bar(x, y3, color='b')
axs[1, 0].set_title('Tan(x)')# 子图4 - 面积图
axs[1, 1].fill_between(x, 0, y4, color='m')
axs[1, 1].set_title('Exp(x)')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

4、random函数绘制多种不一样的子图

根据 random 函数生成随机数据,我们可以绘制多种不同的子图。下面是一个例子,展示了如何使用 random 函数创建多个子图。

import matplotlib.pyplot as plt
import numpy as np# 生成随机数据
np.random.seed(0)
x = np.linspace(0, 10, 100)
y1 = np.random.rand(100)
y2 = np.random.randn(100)
y3 = np.random.randint(1, 10, 100)# 创建子图
fig, axs = plt.subplots(2, 2, figsize=(10, 8))# 子图1
axs[0, 0].plot(x, y1, color='r')
axs[0, 0].set_title('Random Numbers (0-1)')# 子图2
axs[0, 1].scatter(x, y2, color='g')
axs[0, 1].set_title('Random Numbers (Normal Distribution)')# 子图3
axs[1, 0].bar(x, y3, color='b')
axs[1, 0].set_title('Random Integers (1-10)')# 子图4
axs[1, 1].hist(y1, bins=10, color='m')
axs[1, 1].set_title('Histogram of Random Numbers (0-1)')# 调整子图之间的间距
plt.tight_layout()# 显示图形
plt.show()

在这里插入图片描述

5、matplotlib相关图书推荐

在这里插入图片描述

5.1内容简介

在大数据时代背景下,统计学作为数据分析领域的基础,被应用于各行各业,其方法发挥着重要作用。为了更广泛地普及统计学知识,培养更多的统计学人才,本书应运而生。
作为入门级图书,本书内容安排如下。第1章从不确定性出发,讲述统计学和不确定性的关系,以及统计学中用于描述不确定性的各种概率模型。第2章是参数估计,系统讲述统计学中矩估计和极大似然估计两种常用的参数估计方法,并基于两种方法介绍各种常见概率分布中参数的点估计和区间估计。第3章是假设检验,首先从不确定性的角度探讨实际中的各种决策问题,帮助读者理解假设检验的思想和应用场景,然后系统介绍假设检验的方法论及各种常见推广。第4章是回归分析,首先介绍回归分析的思想和广泛的应用场景,然后系统地介绍各类常用模型,从线性回归到广义线性回归,最终落脚到两种机器学习算法(决策树、神经网络)。
本书特别强调实际应用,因此各个章节都辅以大量的实际案例,在介绍统计学基础知识的同时培养读者使用统计学方法解决实际问题的能力。

5.2作者简介

王汉生:北京大学光华管理学院商务统计与经济计量系教授,博导。国家杰出青年基金获得者,教育部长江学者特聘教授,美国统计学会(ASA)Fellow,国际统计协会(ISI) Elected Member。先后历任9个国际学术期刊副主编(Associate Editor)。在国内外各种专业杂志上发表文章100+篇,并合著有英文专著1本、中文教材4本。
王菲菲:中国人民大学统计学院副教授,硕士生导师。北京大学光华管理学院商务统计与经济计量系博士。研究兴趣为文本挖掘、网络结构数据分析、大规模数据的统计建模等。在国内外高水平期刊发表论文20余篇,曾多次获得中国人民大学教学类奖项。热衷案例创作,是微信公众号“狗熊会”精品案例系列的案例组长。

🎉本次送 3本书 ,评论区抽3位小伙伴送书
🎉活动时间:截止到 2023-05-15 14:00:00
🎉抽奖方式:利用爬虫进行随机抽奖。
🎉参与方式:关注博主、点赞、收藏,评论区评论 “我要学习Matplotlib!
ps:一定要关注博主,不然中奖后将无效
🎉通知方式:通过动态与私信与本文最后同时公布
🎉获奖名单:
码银
山山而川442
好多漁

🎉感兴趣的小伙伴也可以访问下面的链接了解详情:
京东自营购买链接:https://item.jd.com/10069307972258.html

📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗


http://chatgpt.dhexx.cn/article/Nj9nfe7Z.shtml

相关文章

matplotlib 基础_子图创建

目录 创建Axes方法1 、 add_subplot 函数:快速创建1.1 设置不等尺寸的子图 2、add_axes 函数:自由设置子图的位置、大小3、指定子图空间:当子图大小成倍数时 一张图理解matplotlib Figure 和 Axes Figure 就是图片,一个完整的图片…

plt.plot画子图时,子图变形,调整子图大小

在画图时候遇到的记录一下 希望可以帮到遇到相同问题的伙伴儿~~ 本来是这样: 本来代码: plt.subplot(1, 2, 1)plt.rcParams[font.sans-serif] [SimHei]plt.rcParams[axes.unicode_minus] Falseplt.rcParams[figure.dpi] 1080plt.rcParams[figure.fi…

关于图论中导出子图的概念

关于图论中导出子图的概念 1、导出子图 A subgraph H is called an induced subgraph of X if for any a , b ∈ E ( H ) a,b \in E(H) a,b∈E(H) if and only if a , b ∈ E ( X ) a,b \in E(X) a,b∈E(X). 2、点导出子图 设S是V(G)的子集,以S为点集&#xf…

极大连通子图与极小连通子图

无向图 连通图: 在无向图中,若从定点V1到V2有路径,则称顶点V1和V2是连通的。如果图中任意一对顶点都是连通的,则称此图是连通图。(连通的无向图)极大连通子图: 1.连通图只有一个极大连通子图&a…

python数据可视化玩转Matplotlib subplot子图操作,四个子图(一包四),三个子图,子图拉伸

目录 一、创建子图 1.1 下图是绘制的子图: 1.2 代码释义: 二、绘制子图 2.1 代码引入 2.2 图形绘制 三、子图布局 3.1 子图布局说明 四、子图大小 4.1 子图大小调整 五、子图间距 5.1 子图代码调整 六、子图位置 6.1 代码引入 6.2 完整代码…

极大连通子图与极小连通子图(带图讲解)

因为本人对于这一块知识存在疑惑,在学习了相关知识后将自己的理解分享给大家,如有错误,欢迎纠正。 首先我们先明确一下,极小连通子图与极大连通子图是在无向图中进行讨论的。 极大强连通子图是在有向图中进行讨论的,不…

Python 调整子图大小、位置【plt.axes()自定义子图】

效果图: plt.axes()绘图结果 上图一共三个子图,两个横向子图对齐右侧纵向长图。 本来想用plt.subplot()函数画,结果找了半天都是下图这种结果: 只能合并列,不能合并行 plt.subplot()绘图结果 因此,我放…

子图的概念

设G(V,E)为一个图,H(V’,E’)也是一个 图,称H为G的一个子图(subgraph),如果 ,并且对任意的边euv∈E’必须有u,v∈V’,记为 , 此时也称G为H的母图(super graph). 设H(V’,E’)为G(V,E)的一个子图,称H为G的生成(支撑)子图(spanning subgraph),如果V’V. 设G(V,E)是一个图,,构造一…

最大完全子图和极大连通子图

最近学习图论的一串小结之一 完全图&完全子图&最大完全子图 完全图:任意两点都恰有一条边相连的图(任意两点都相邻)。 完全子图:满足任意两点都恰有一条边相连的子图,也叫团。 最大完全子图:所有完全子图中顶点数最大…

子图,生成子图和导出子图

所有的顶点和边都属于图G的图称为G的子图。含有G的所有顶点的子图称为G的生成子图。 设V1是V的一个非空子集,以V1为顶点集,以两端点均在V1中的边的全体为边集的子图称为G的导出子图,记作G[V1]。导出子图G[V\V1]记为G-V1,它是从G中…

子图、生成子图、导出子图和主子图

所有的顶点和边都属于图G的图称为G的子图。含有G的所有顶点的子图称为G的生成子图。 设V1是V的一个非空子集,以V1为顶点集,以两端点均在V1中的边的全体为边集的子图称为G的导出子图,记作G[V1]。导出子图G[V\V1]记为G-V1,它是从…

子图,生成子图(Spanning Subgraph),导出子图(Induced Subgraph)的定义

首先给出一些定义。原图G用G (V, E)表示,V是G中的所有顶点的集合;E是G中所有边的集合。 子图 定义:子图G’中所有的顶点和边均包含于原图G。即E’∈E,并且V’∈V。 生成子图(Spanning Subgraph) 定义&…

图论中的概念(1)——子图、商图与补图

1.子图(subgraph) 设G(V, E)和G¢(V¢, E¢)是两个(有向的或无向的)图。 (1) 若V¢V且E¢ E,则称G¢为G的子图; (2) 若V¢V且 E¢ E,则称G¢为G的真子图(proper-); (3) 若V¢V且E…

图的基本概念

图的基本概念 一个图 G 它可以由顶点集(图 G 中顶点的有限非空集) V 和边集(图 G 中顶点之间的关系集合) E 所组成。图中顶点个数也可以称为图的阶;任何一条边的两头必须连接某一个顶点。图不可以是空,即顶…

图论(3)子图,图运算,路与连通性

目录 一、子图相关概念 1.子图概念 2.点导出子图与边导出子图 点导出子图 边导出子图 3.图的生成子图 二、图运算 1.图的删点、删边运算 删点运算 删边运算 2.图的并运算 3.图的交运算 4.图的差运算 5.图的对称差运算或环和运算 6.图的联运算 7.图的积图 8.图…

数据可视化——子图的绘制及坐标轴共享

一、绘制固定区域的子图 matplotlib可以将整个画布规划成等分布的m*n(行 x 列)的矩阵区域,并对每个区域进行编号。 1.1、绘制单子图 使用pyplot()函数的subplot()可以在规划好的某个区域中绘制单个子图。 语法格式如下: subplo…

子图

前言 子图是指说绘制的图形是有多个图形组成的,通过子图能否进行数据的不同比较。其主要是通过subplot方法实现的。 其中有规范划分和不规则划分。 subplot(numRows, numCols, plotNum) numRows:子图总行数 numCols:子图总列数 plotNum:子图编号(从左到右&#xf…

Matplotlib(二)—— 子图

Python模块 —— Matplotlib Matplotlib(二)—— 子图四、子图4.1 均匀子图4.1.1 plt.subplots4.1.2 plt.subplot 4.2 非均匀子图4.2.1 fig.add_gridspec 4.3 子图上的方法4.4 墨尔本温度数据集4.5 画出数据的散点图和边际分布图 Matplotlib(…

物联网和海计算有什么关系,主要具有哪些优点?

物联网和海计算 海计算通过在物理世界的物体中融入计算与通信设备以及智能算法,让物物之间能够互连,在事先无法预知的场景中进行判断,实现物物之间的交互作用。海计算一方面通过强化融入在各物体中的信息装置,实现物体与信息装置…

再谈智能

1. 智能的产生 1.1 智能生成机理 有关智能生成的机理,一直是许多领域关注的焦点问题,涉及面之广、深很是少见,初步梳理可能会与这样几个最基本的问题有关:认知生成的机理、知识生成的机理、意义生成的机理、情感生成的机理、…