当前位置: 首页 > article >正文

Matplotlib网格子图_Python数据分析与可视化

Matplotlib网格子图

  • plt.subplot()绘制子图
  • 调整子图之间的间隔
  • plt.subplots创建网格

plt.subplot()绘制子图

若干彼此对齐的行列子图是常见的可视化任务,matplotlib拥有一些可以轻松创建它们的简便方法。最底层且最常用的方法是plt.subplot()

这个函数在一个网格中创建一个子图,该函数由三个整型参数,依次为将要创建的网格子图行数、列数和索引值,索引值从1开始,从左上到右下递增。

for i in range(1, 7):
    plt.subplot(2, 3, i)
    plt.text(0.5, 0.5, str((2, 3, i)),
        fontsize=18, ha='center')

在这里插入图片描述

调整子图之间的间隔

在上图y轴的刻度有的已经和前面的子图重叠,matplotlib提供plt.subplots_adjust命令调整子图之间的间隔。用面向对象接口的命令fig.add_subplot()可以取得同样的效果。

fig = plt.figure()
fig.subplots_adjust(hspace=0.4, wspace=0.4)
for i in range(1, 7):
    ax = fig.add_subplot(2, 3, i)
    ax.text(0.5, 0.5, str((2, 3, i)),
        fontsize=18, ha='center')

在这里插入图片描述

这里我们通过设置 plt.subplots_adjusthspacewspace参数设置与图形高度与宽度一致的子图间距,数值以子图的尺寸为单位。

plt.subplots创建网格

当我们需要创建一个大型网格子图时,就没办法使用前面那种亦步亦趋的方法了,尤其是当你想隐藏内部子图的x轴与y轴标题时。matplotlib提供了plt.subplots()来解决这个问题。

这个函数不是用来创建单个子图的,而是用一行代码创建多个子图,并放回一个包含子图的numpy数组。关键参数是行数与列数以及可选参数sharexsharey

让我们创建一个2 × 3的网格子图,同行使用相同的y坐标,同列使用相同的y轴坐标:

fig, ax = plt.subplots(2, 3, sharex='col', sharey='row')

在这里插入图片描述

设置sharexsharey参数后,我们就可以自动去掉网格内部子图的标签。
坐标轴实例网格的放回结果是一个numpy数组,这样就可以通过标准的数组取值方式轻松获取想要的坐标轴了:

fig, ax = plt.subplots(2, 3, sharex='col', sharey='row')
for i in range(2):
    for j in range(3):
        ax[i, j].text(0.5, 0.5, str((i, j)),
            fontsize=18, ha='center')

在这里插入图片描述


http://www.kler.cn/a/145087.html

相关文章:

  • 简要介绍C语言与c++共有的数学函数
  • 【Unity3D】实现横版2D游戏角色二段跳、蹬墙跳、扶墙下滑
  • 基于Python的人工智能患者风险评估预测模型构建与应用研究(下)
  • 电商系统-用户认证(三)基于公钥解析JWT令牌
  • 剑指 Offer II 007. 数组中和为 0 的三个数
  • 力扣面试150 快乐数 循环链表找环 链表抽象 哈希
  • C语言每日一题(39)寻找两个正序数组的中位数
  • Failed to initialize NVML: Driver/library version mismatch
  • Nginx高级
  • BART 并行成像重建:ESPIRiT 重建(两组ESPIRiT maps)
  • DistilBERT模型训练实战
  • 易错知识点(数学一)
  • cJSON的使用——下载、打包与解析
  • [HCIE] IPSec-VPN (手工模式)
  • 「Verilog学习笔记」数据累加输出
  • 队列实现栈VS栈实现队列
  • MATLAB中字符和字符串操作
  • 【anaconda】numpy.dot 向量点乘小技巧
  • 【机器学习 | 聚类】关于聚类最全评价方法大全,确定不收藏?
  • 【LeetCode:828. 统计子串中的唯一字符 | 贡献法 乘法原理】
  • 十分钟让你搞懂JVM中的GC垃圾回收机制(分代回收)
  • MySQL- 创建可以远程访问的root账户
  • GIT版本控制和常用命令使用介绍
  • Centos开机启动Java程序
  • [架构相关]基础架构设计原则
  • openEuler Linux 部署 FineBi