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.mzph.cn/news/170921.shtml

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

相关文章

JavaScript 表达式

JavaScript 表达式 目录 JavaScript 表达式 一、赋值表达式 二、算术表达式 三、布尔表达式 四、字符串表达式 表达式是一个语句的集合,计算结果是个单一值。 在JavaScript中,常见的表达式有4种: (1)赋值表达式…

ABAP UT(单元测试)

UT的重点是处理外部依赖(dependency),外部依赖主要是指当前需要测试的类里用到了其他类,Function Module或者是SQL;可能存在外部依赖的地方是类的属性,方法和方法参数。 处理外部依赖的做法之一是隔离&…

企业计算机服务器中了mkp勒索病毒怎么办?Mkp勒索病毒解密数据恢复

网络技术的不断发展,为企业的生产运营提供了坚实的基础,但随之而来的网络安全威胁也不断增加,影响了企业的正常生产生活。近期,云天数据恢复中心陆续接到很多企业的求助,企业计算机服务器遭到了mkp勒索病毒攻击&#x…

中伟视界:AI智能分析盒子实现全方位人车监测,保障管道安全

在油气管道长又无人的场景下,人和车的监测问题一直是一个难题。传统的监测手段往往存在盲区和误报问题,给管道运行安全带来了一定的隐患。然而,随着人工智能技术的不断发展,利用AI盒子的智能分析算法可以有效解决这一问题。 首先&…

3.golang数组以及切片

数组 数组的声明 数组是具有相同 唯一类型 的一组以编号且长度固定的数据项序列。一个数组的表示形式为 T[n]。n 表示数组中元素的数量,T 代表每个元素的类型。 var a [3]int fmt.Println(a)var a[3]int 声明了一个长度为 3 的整型数组。数组中的所有元素都被自动…

QThreadStorage使用介绍

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 什么是线程数据存储Qt中的线程数据存储`QThreadStorage` 的用法:代码示例什么是线程数据存储 线程数据存储是指为每个线程在程序中分配和管理数据的过程。它主要用于并发编程…

LeetCode Hot100 108.将有序数组转为二叉搜索树

题目: 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 方法: class Solution {public…

YOLOv5小目标检测层

目录 一、原理 二、yaml配置文件 一、原理 小目标检测层,就是增加一个检测头,增加一层锚框,用来检测输入图像中像素较小的目标 二、yaml配置文件 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license# Parameters nc: 3 # number of classes depth_multiple: 0.33 # model…

stm32中断调用流程

USART1_IRQHandler(void)(中断服务函数) -> HAL_UART_IRQHandler(UART_HandleTypeDef *huart)(中断处理函数) -> UART_Receive_IT(UART_HandleTypeDef *huart) (接收函数) -> HAL_UART_RxCpltCallback(huart);(中断回调函数) HAL_UART_IRQHandler(UART_HandleTypeDef…

[递归,动态规划] 和为定值的子集合

和为定值的子集数 题目描述 已知 n 个正整数,wi (1≤i≤n) 形成一个集合 W{w1,w2,...,wn},集合中的元素彼此不相同。给定某个正整数 M ,集合W中可否存在子集,该子集的所有元素之和和恰好为M,问:这样的子…

H5+.Net core项目简易教程

小白教程,老司机忽略 一、H5: 1.工具:Hbuilder X 2.导入:(菜单)文件/导入 3.设置本地调试接口: vue.config.js/devserver:{proxy:{"/api":{target:接口地址写在这里}} 4.运行:先…

【LeetCode:828. 统计子串中的唯一字符 | 贡献法 乘法原理】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

②⑩① 【MySQL】什么是分库分表?拆分策略有什么?什么是MyCat?

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 目录 ②⑩① 【MySQL】什么是分库分表&#xf…

分享一篇很久以前的文档-VMware Vsphere菜鸟篇

PS:由于内容是很久以前做的记录,在整理过程中发现了一些问题,简单修改后分享给大家。首先ESXI节点和win7均运行在VMware Workstation上面,属于是最底层,而新创建的CentOS则是嵌套后创建的操作系统,这点希望…

Drools Rule Language 学习笔记

Drools Rule Language 1 Packages in DRL 可以有多个packages但推荐只用一个packageexample: package org.mortgages; 2 Import statements in DRL 2.1 You specify the package and data object in the format packageName.objectName, with multiple imports …

linux环境git保存账户和密码设置

全局设置 git config --global user.name [username] git config --global user.password [userpassword] 当前项目生效 git config user.name [username] git config user.password [userpassword] 如果想要免密码操作,正常上传或拉去数据后,执…

Redis-缓存设计

缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的…

RocketMq 主题(TOPIC)生产级应用

RocketMq是阿里出品(基于MetaQ)的开源中间件,已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现,十万级数据吞吐量,ms级处理速度,分布式架构,功能强大,扩展性强。 官方…

Java中的jvm——面试题+答案(Java虚拟机的基本概念、内存管理、类加载、垃圾回收等)——第12期

什么是Java虚拟机(JVM)? 答案: Java虚拟机是Java程序运行的环境,它负责将Java源代码编译成字节码,并在运行时执行这些字节码。 Java虚拟机的主要组成部分有哪些? 答案: 主要组成部…

incast,拥塞控制,内存墙的秘密

数据中心 incast,广域网拥塞,内存墙都是一类问题。 我接触 incast 很久了,大多是帮忙查问题,也解过几例。 我记得有一次在业务几乎总是(在统计学上,几乎和总是属同义强调) tail latency 很大时,我建议在 …