前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Matplotlib子图划分——非均匀绘图

Matplotlib子图划分——非均匀绘图

作者头像
python数据可视化之路
发布于 2023-02-23 13:04:50
发布于 2023-02-23 13:04:50
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

本节主要探讨matplotlib子图的非均匀划分,并在文末补充了axes对象的常用属性。

一、均匀子图的划分(参考上一节)

二、非均匀子图划分

分均匀子图的语法均可用于均匀绘图

1)subplot()函数

语法:plt.subplot(nrows, ncols, index, **kwargs),参数解释参考上一节。

现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 非均匀绘图
import matplotlib.pyplot as plt

fig = plt.figure(figsize = (6, 6)) #设置画布大小为6英寸*6英寸
ax1 = plt.subplot(221) #表示将画布分为22列,索引为1的子区
ax2 = plt.subplot(222) #表示将画布分为22列,索引为2的子区
ax3 = plt.subplot(212) #表示将画布分为21列,索引为2的子区

plt.show()

图1 subplot子图划分

关于ax3 = plt.subplot(212)的理解:因为子区都是在同一个画布上绘制的,每一个plt.subplot()都是指定一个划分规则并选中子区。ax1,ax2表示对画布分为4个均等子区,并且选中了第一个和第二个,剩下的第二行没有被选中。ax3语法则按照新的划分规则(分为2行1列)将画布重新划分,并占用第2行的部分,这一部分恰好是ax1和ax2所空出来的,完成了画布的不均等划分。

2)add_subplot()函数

语法:fig.add_subplot(nrows, ncols, index, **kwargs)

参数解释和subplot()类似。

现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig = plt.figure(figsize = (5, 5))

ax1 = fig.add_subplot(221) #表示将画布分为22列,索引为1的子区
ax2 = fig.add_subplot(222) #表示将画布分为22列,索引为2的子区
ax3 = fig.add_subplot(212) #表示将画布分为21列,索引为2的子区

plt.show()

图2 add_subplot子图划分

3)subplot_mosaic()函数

语法:fig, axs = plt.subplot_mosaic(子图别称,layout, figsize) #笔者常用这两个参数。

参数解释参见上一节内容。

现在创建一个画布,有三个子区,子区1,2在第一行,子区3单独在第二行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fig, ax = plt.subplot_mosaic('''
                                AB
                                CC''', layout = 'constrained', figsize = (6, 6))
ax['A'].set_title('Part A') #设置A子区标题
ax['B'].set_title('Part B')
ax['C'].set_title('Part C')

plt.show()

图3 subplot_mosaic子区划分

以上就是笔者用于不均匀子图划分的常用函数,上述子区都是axes对象,因此可以使用axes的方法属性对绘图区进行调整。

三、axes对象常用的属性

axes.set_xlim():设置x轴范围,axes.set_xlim(-5, 5)

axes.set_xlabel():设置x轴标签,axes.set_xlabel('x轴', font1),使用font1号新建字体样式,具体参考上一节第一个例子。

axes.set_xticks():设置x轴刻度,axes.set_xticks(range(-5, 6, 1),设置x轴刻度为[-5, -4, ..., 4, 5]

axes.get_xticklabels():获取x轴刻度列表。

[label.set_fontsize(size) for label in axes.get_xticklabels] 改变x轴刻度字体大小(配合获取刻度列表使用),同样,坐标轴刻度字体也要配合刻度列表使用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x1_label = ax1.get_xticklabels() #获取x轴刻度列表
[label.set_fontsize(15) for label in x1_label] #改变x轴刻度字体大小
[label.set_fontname('Times New Roman') for label in x1_label] #设置坐标轴刻度字体

axes.legend(fontsize = 15):显示图例,并设置字体大小为15。

axes.set_title():设置标题。

更多的设置参考博客:

https://blog.csdn.net/weixin_44237337/article/details/116149154

本节的非均匀绘图到此结束,感谢阅读,下一节将进行统计图形绘制。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python数据可视化之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Go 译文之词法分析与解析 Part Three
最近发现我的翻译是越来越随性了,刚开始文章翻译的时候比较拘束,现在更多强调可读性,比如有些对文章大意没有什么影响的文字我现在都会选择直接跳过。
波罗学
2020/10/15
4010
Go viper 配置文件读取工具
viper 提供默认 Viper对象, 可直接使用。 也通过 New 方法创建自定义Viper
copy_left
2020/08/11
1.8K0
配置文件格式 XML 快速上手
XML 文档结构是一种树结构,它从“根部”开始,然后扩展到“枝叶”。XML 文档必须有一个唯一的根结点,根结点包含所有其它结点。所有结点均可拥有文本内容和属性(名称/值的对)。XML 结点也叫做 XML 元素。
恋喵大鲤鱼
2024/07/21
1370
配置文件格式 JSON 快速上手
JSON(JavaScript Object Notation) 是轻量级的文本数据交换格式,独立于语言,具有自我描述性。JSON 类似于 XML,但比 XML 更小、更快,更易解析。
恋喵大鲤鱼
2024/07/21
1490
配置文件格式 TOML 快速上手
GitHub 联合创始人 Tom Preston-Werner 觉得 YAML 不够简洁优雅,如缩进要严格对齐,因此和其他几位开发者一起捣鼓了一个 TOML(Tom’s Obvious Minimal Language)。
恋喵大鲤鱼
2024/04/20
1.1K0
程序常用配置文件格式介绍
不管是移动应用、桌面程序还是后台服务,经常需要从配置文件中读取配置信息,进行程序初始化和改变运行时的状态。以什么要的格式来存储配置信息,这是开发人员需要面临的一个问题。常用的配置文件格式主要有:
恋喵大鲤鱼
2022/05/09
3.3K0
程序常用配置文件格式介绍
Go每日一库之6:viper
上一篇文章介绍 cobra 的时候提到了 viper,今天我们就来介绍一下这个库。
luckpunk
2023/09/13
3480
go库介绍:Golang中的Viper库
在Golang(Go)的开发中,配置管理是一个不可或缺的部分。一个优雅的配置管理方案不仅能够简化应用程序的配置处理流程,还能提高应用程序的灵活性和可维护性。在这方面,Viper库无疑是Go生态系统中的一颗璀璨明珠。本文将详细介绍Viper库及其使用场景,并通过具体示例展示其强大功能。
每周聚焦
2024/11/08
4010
go库介绍:Golang中的Viper库
go语言简单实现加载ini文件
https://github.com/lu569368/Practise_reflex/
仙士可
2022/01/27
4680
go语言简单实现加载ini文件
配置文件热加载的go语言实现
通常我们更新应用程序的配置文件,都需要手动重启程序或手动重新加载配置。假设一组服务部署在10台机器上,你需要借助批量运维工具执行重启命令,而且10台同时重启可能还会造成服务短暂不可用。要是更新配置后,服务自动刷新配置多好...今天我们就用go实现配置文件热加载的小功能,以后更新配置再也不用手动重启了...
用户1432189
2018/09/05
8750
配置文件热加载的go语言实现
Go语言(十七) 配置文件库项目
配置文件库项目 简介 用途: 解析ini类型的配置文件 知识点: 主要基于反射 ini配置文件的解析,配置文件如下 ;config file [server] host = www.baidu.com port = 8080 [cartdb] user = root.xxx password = root host = localhost port = 3306 database = cartdb rate = 1.2 需求分析 拆离出动态配置 映射数据到项目数据结构中 -包含配置文件读取(UnMarsh
alexhuiwang
2020/09/23
4450
2.Go语言编程学习课后实践
示例1.利用reflect反射实现一个ini配置文件的读取 (ini 文件解析器)。
全栈工程师修炼指南
2022/09/29
7450
2.Go语言编程学习课后实践
如何读取yaml,json,ini等配置文件【Golang 入门系列九】
本文转载自如何读取yaml,json,ini等配置文件【Golang 入门系列九】 前面已经讲过一些Go语言的基础知识,感兴趣的朋友可以先看看之前的文章。https://www.cnblogs.com/zhangweizhong/category/1275863.html。
ccf19881030
2021/01/04
2.3K0
聊聊kingbus的main.go
kingbus的main方法读取config、version参数,然后通过config.NewKingbusServerConfig(*configFile)获取serverCfg,之后通过server.NewKingbusServer(serverCfg)创建KingbusServer,然后执行ks.Run()
code4it
2020/06/12
3610
聊聊kingbus的main.go
GoLang 环境变量与配置
配置文件是一个 ini 文件。Service 下的 Environment/EnvironmentFile 配置环境变量相关的内容。
闻说社
2024/06/12
1660
GoLang 环境变量与配置
知识分享之Golang——和我一起搭建一个快速开发框架(二)
知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。
cn華少
2021/12/28
3200
知识分享之Golang——和我一起搭建一个快速开发框架(二)
【Go API 开发实战 6】基础 2:配置文件读取
从上面这些特性来看,Viper 毫无疑问是非常强大的,而且 Viper 用起来也很方便,在初始化配置文件后,读取配置只需要调用viper.GetString()、viper.GetInt() 和 viper.GetBool()等函数即可。
腾讯技术工程官方号
2019/05/16
2.1K0
【Go API 开发实战 6】基础 2:配置文件读取
Go每日一库之4:go-ini
ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。
luckpunk
2023/09/12
3420
go语言中的配置管理神器 --viper 一
Viper 是 Go 应用程序的完整配置解决方案,包括 12-Factor 应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。它支持:
onenewcode
2024/02/02
3400
用Go自己实现配置文件热加载功能
说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上的配置文件不是想改就能改的。 这次就自己实现一个配置文件的热加载功能的包,并通过一个简单的例子对完成的包进行使用验证 配置文件热加载包的是实现 其实整体的思路还是比较简单的,当获取配置文件内容后,会开启一个goroutine,去 循环读配置文件,当然这里不可能不限制的一直循环,而是设置了一个定时器,定时去读文件
coders
2018/03/30
1.6K0
用Go自己实现配置文件热加载功能
相关推荐
Go 译文之词法分析与解析 Part Three
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验