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

这篇具有很好参考价值的文章主要介绍了python数据可视化玩转Matplotlib subplot子图操作,四个子图(一包四),三个子图,子图拉伸。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、创建子图

1.1 下图是绘制的子图:

1.2 代码释义:

二、绘制子图

2.1 代码引入

2.2 图形绘制

三、子图布局

3.1 子图布局说明

四、子图大小

4.1 子图大小调整

五、子图间距

5.1 子图代码调整

六、子图位置

6.1 代码引入

6.2 完整代码

6.3 完整代码

总结




大锤爱编程的博客_CSDN博客-大数据,Go,数据分析领域博主

Matplotlib是一个流行的Python可视化库,它提供了许多功能来创建各种类型的图表。其中一个功能是子图,它允许您在单个图表中绘制多个图。

一、创建子图

要创建子图,请使用plt.subplots()函数。该函数接受三个参数:行数、列数和子图编号。以下是一个简单的示例:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)

这将创建一个2x2的网格,其中包含4个子图。每个子图都有一个唯一的编号,可以在axs数组中访问。例如,要访问第一个子图,请使用axs[0, 0]

以下是一个示例代码,用于绘制2x2网格,其中每个子图都随机放置一个图形:

import matplotlib.pyplot as plt
import numpy as np

# 创建一个2x2的网格
fig, axs = plt.subplots(2, 2)

# 在每个子图中绘制一个图形
for ax in axs.flat:
    # 随机生成一些数据
    x = np.random.rand(100)
    y = np.random.rand(100)
    # 绘制散点图
    ax.scatter(x, y)

# 显示图形
plt.show()

1.1 下图是绘制的子图:

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

1.2 代码释义:

注释:

  • 导入必要的库:我们需要使用matplotlib和numpy库来生成散点图和随机数。
  • 创建一个2x2的网格:我们使用subplot()函数创建一个2x2的子图,该函数返回一个Figure对象fig和一个Axes对象数组axs,它包含四个子图,第一个参数2表示行数,第二个参数2表示列数。
  • 在每个子图中绘制一个图形:我们使用for循环遍历每个子图对象,对每个子图生成随机数据,使用scatter()函数在子图中绘制散点图。使用axs.flat将axs数组展平为一维,这样可以方便地遍历每个子图。
  • 随机生成一些数据:我们使用numpy库中的random模块来生成100个在[0,1)内的随机数作为横坐标和纵坐标。
  • 绘制散点图:我们使用子图对象ax的scatter()函数来绘制散点图,该函数接受横坐标和纵坐标作为参数,将它们绘制成散点图。
  • 显示图形:最后,我们调用plt.show()函数来显示所有子图。这将打开一个窗口,其中包含四个散点图子图。

二、绘制子图

2.1 代码引入

绘制子图与绘制普通图形非常相似。您可以使用子图的Axes对象上的任何Matplotlib绘图函数。例如,以下代码将在第一个子图中绘制一条线:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot([1, 2, 3, 4], [1, 4, 2, 3])

要在所有子图中绘制相同的图形,请使用循环。以下代码将在所有子图中绘制一条线:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
    ax.plot([1, 2, 3, 4], [1, 4, 2, 3])

2.2 图形绘制

下面是绘制的子图:

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

三、子图布局

3.1 子图布局说明

默认情况下,plt.subplots()函数将子图放置在网格中,每个子图的大小相同。但是,您可以使用各种选项来更改子图的大小和位置。

四、子图大小

4.1 子图大小调整

要更改子图的大小,请使用figsize参数。以下代码将创建一个2x2的网格,其中每个子图的大小为4x4英寸:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2, figsize=(4, 4))

五、子图间距

5.1 子图代码调整

要更改子图之间的间距,请使用wspacehspace参数。这些参数控制子图之间的水平和垂直间距,以及子图与图表边缘的距离。以下代码将创建一个2x2的网格,其中每个子图的水平和垂直间距为0.5英寸:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2, figsize=(4, 4), wspace=0.5, hspace=0.5)

六、子图位置

6.1 代码引入

默认情况下,子图将放置在网格中,但您也可以使用GridSpec对象来更改子图的位置。以下代码将创建一个网格,其中第一个子图占据整个第一行,而第二个子图占据第一行的后两列:

import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt

fig = plt.figure()
gs = gridspec.GridSpec(2, 2, width_ratios=[1, 2])
ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1:])

6.2 完整代码

以下是一个完整的Python代码,演示如何使用GridSpec对象来更改子图的位置。该代码将创建一个2x2的网格,其中第一个子图占据整个第一行,而第二个子图占据第一行的后两列。

import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
import numpy as np

# 创建一个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])

# 在第一个子图中绘制一个折线图
x = np.linspace(0, 10, 100)
y = np.sin(x)
ax1.plot(x, y)

# 在第二个子图中绘制一个散点图
x = np.random.rand(100)
y = np.random.rand(100)
ax2.scatter(x, y)

# 在第三个子图中绘制一个柱状图
x = ['A', 'B', 'C', 'D']
y = [3, 7, 1, 9]
ax3.bar(x, y)

# 显示图形
plt.show()

下面是绘制的子图:

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

6.3 完整代码

示例1:使用GridSpec对象创建自定义子图布局

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure()

# 定义网格
gs = gridspec.GridSpec(3, 3)

# 创建子图1
ax1 = fig.add_subplot(gs[0, :])
ax1.set_title('Subplot 1')

# 创建子图2
ax2 = fig.add_subplot(gs[1, :2])
ax2.set_title('Subplot 2')

# 创建子图3
ax3 = fig.add_subplot(gs[1:, 2])
ax3.set_title('Subplot 3')

# 创建子图4
ax4 = fig.add_subplot(gs[2, :2])
ax4.set_title('Subplot 4')

# 添加图形
fig.tight_layout()
plt.show()

绘制出来的图片如下,可以看出来,符合实际需求。python数据可视化玩转Matplotlib subplot子图操作,四个子图(一包四),三个子图,子图拉伸

总结

子图是Matplotlib中强大的功能之一。使用plt.subplots()函数,您可以方便地创建多个子图,并使用Axes对象绘制各种图形。使用各种选项,例如figsizewspacehspace参数,以及GridSpec对象,可以更改子图的大小、位置和间距。文章来源地址https://www.toymoban.com/news/detail-409439.html

到了这里,关于python数据可视化玩转Matplotlib subplot子图操作,四个子图(一包四),三个子图,子图拉伸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python学习——Matplotlib数据可视化基础

    官方网站:https://matplotlib.org/ 百度前端:https://www.echartsjs.com/zh/index.html plotly:可视化工具:https://plot.ly/python/ matplotlib: 最流行的Python底层绘图库,主要做数据可视化图表,名字取材于MATLAB,模仿MATLAB构建 实例1 实例2 子图 实例1 案例2 能够使用plt.hist方法的是那些没有统计过的数

    2024年02月10日
    浏览(30)
  • 基于Python的疫情数据可视化(matplotlib,pyecharts动态地图,大屏可视化)

    有任何学习问题可以加我微信交流哦!bmt1014 1、项目需求分析 1.1背景 2020年,新冠肺炎疫情在全球范围内爆发,给人们的健康和生命带来了严重威胁,不同国家和地区的疫情形势也引起了广泛的关注。疫情数据的监测和分析对疫情防控和科学防治至关重要。本报告以疫情数据

    2024年02月05日
    浏览(39)
  • Matplotlib:Python数据可视化的全面指南

    数据可视化是数据分析的一个重要方面,可以帮助我们有效地传达数据中的洞察和模式。Python提供了几个用于数据可视化的库,其中最突出和广泛使用的是Matplotlib。在本文中,我们将探索Matplotlib的基本概念和功能,并学习如何创建各种类型的图表和图形。 在深入了解Matplo

    2024年02月10日
    浏览(37)
  • Python数据可视化之matplotlib绘图教程

    目录 一、快速绘图 1. 折线图 2. 柱状图 3. 饼状图 4. 散点图 5. 图片保存  二、基本设置 1. 图片 2. 坐标轴 3. 刻度 4. 边距 5. 图例 6. 网格 7. 标题 8. 文本 9. 注释文本 10. 主题设置 11. 颜色 12. 线条样式 13. 标记形状 三、绘图进阶 1. 折线图 2. 条形图  3. 散点图 4. 饼状图 5. 多图并

    2024年02月04日
    浏览(35)
  • Matplotlib Mastery: 从基础到高级的数据可视化指南【第30篇—python:数据可视化】

    Matplotlib是一个功能强大的数据可视化库,为数据科学家提供了丰富的工具和功能,可以以直观的方式呈现数据。 1. 基础 1.1 安装Matplotlib 在使用Matplotlib之前,请确保已经安装了Matplotlib库。可以使用以下命令进行安装: 1.2 创建第一个简单的图表 安装好Matplotlib后,让我们来创

    2024年01月21日
    浏览(37)
  • Python-数据可视化:matplotlib模块、pyecharts模块

    返回Python系列文章目录 matplotlib 是一个基于python 的绘图库,完全支持二维图像,有限支持三维图形,Matplotlib是python编程语言及其数据科学扩展包NumPy的可视化操作界面库。 matplotlib模块 导入方式 可参考文章:Python之数据可视化——matplotlib系统介绍 Echarts 是一个由百度开源的

    2024年02月08日
    浏览(36)
  • 【python】数据可视化——解决matplotlib显示中文乱码

    D:anaconda3envstest1libtkinter_ init _.py:839: UserWarning: Glyph 31532 (N{CJK UNIFIED IDEOGRAPH-7B2C}) missing from current font. func(*args) D:anaconda3envstest1libtkinter_ init _.py:839: UserWarning: Glyph 19968 (N{CJK UNIFIED IDEOGRAPH-4E00}) missing from current font. func(*args) D:anaconda3envstest1libtkinter_ init _.py:839: UserWarnin

    2024年01月22日
    浏览(39)
  • python数据可视化神库:Matplotlib快速入门

    Matplotlib易于使用,是Python中了不起的可视化库。它建立在NumPy数组的基础上,旨在与更广泛的SciPy堆栈一起工作,并由几个图组成:线图、条形图、散点图、直方图等。 在上面的例子中,X和Y的元素提供了X轴和Y轴的坐标,并根据这些坐标绘制了一条直线。 Pyplot是一个Matplotli

    2023年04月27日
    浏览(33)
  • Python Matplotlib数据可视化绘图之(三)————散点图

    文本 本文我们主要介绍利用Python中的Matplotlib模块进行几种散点图的画法,包括整张图片只有一种颜色的不分组散点图、整张图片有好几种颜色的不分组散点图、整张图片有好几种颜色的分组散点图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 班别

    2024年02月07日
    浏览(40)
  • Python Matplotlib数据可视化绘图之(一)————柱状图

    本文我们主要介绍利用Python中的Matplotlib模块进行几种柱状图的画法,包括整张图片只有一种颜色的不分组柱状图、整张图片有好几种颜色的不分组柱状图、整张图片有好几种颜色的分组柱状图等。 主要利用Python中的Matplotlib模块完成该功能。 表格如下(示例): 语言种类

    2024年02月06日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包