这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战
复习回顾
我们在前面对matplotlib模块基本模块的认识,到对matplotlib.plot模块绘制折线图、柱状图饼图等,往期文章的内容快速查看
- matplotlib 绘制折线图:介绍折线图相关属性进行汇总说明
- matplotlib 绘制柱状图:介绍柱状图相关属性进行汇总说明
- matplotlib 绘制直方图:介绍直方图相关属性进行汇总说明
- matplotlib 绘制散点图:介绍散点图相关属性进行汇总说明
- matplotlib 绘制等高线图:介绍等高线图相关属性进行汇总说明
- matplotlib 绘制饼图: 介绍饼图相关属性进行汇总说明
在统计图表中,能详细地展现数据信息,往往我们都需要绘制多个子图帮助展示数据,pyplot.subplot()、Figure.add_subplot、pyplot.axes()等方法来绘制不同场景的子图
本期,我们将学习matplotlib绘制子图的方法,Let’s go~
我们之前在学习matplotlib模块底层时,都知道matplotlib模块主要分为脚本层、美工层、后端,其中在美工层中,我们对图表组成的元素包括:Figure->Axes->Axis
- 怎么才能在图表中放下其他的图表呢?
这个时候我们需要在Figure画布去添加Axes对象即可创建第二个图表。
- matplotlib 模块提供绘制方法
+ matplotlib模块提供了方法
方法 | 说明 |
---|---|
matplotlib.pyplot.subplot() | 将Axes添加到当前画布中 |
matplotlib.pyplot.subplots() | 创建一个画布和子图 |
matplotlib.pyplot.subplot2grid() | 利用网格的方式均匀划分不同部分 |
matplotlib.pyplot.axes() | 将轴添加到当前画布并使其成为当前轴 |
matplotlib.pyplot.figure() | 创建新画布 |
matplotlib.Figure.add_subplot() | 向画布添加一个Axes对象作为子图 |
matplotlib.Figure.subplots() | 向画布中添加一组子图 |
* 在matplotlib模块中,支持绘制子图的方法集中在pyplot和Figure类 | |
* matplotlib 模块中提供的子图的方法我们常用主要subplot()、subplots()和add_subplot()方法 |
在subplot()、subplots()和add_subplot()方法中会共用到如下属性。
- 设置子图背景色
+ 关键字:facecolor或者fc
+ 取值可选:
- 表示颜色的英文单词:如红色"red"
- 表示颜色单词的简称如:红色"r",黄色"y"
- RGB格式:十六进制格式如"#88c999";(r,g,b)元组形式
- 设置子图x/y轴标签
+ 设置x轴关键字:xlabel
+ 设置y轴关键字:ylabel
+ 取值形式为:字符串
- 设置子图x/y轴比例
+ 设置x轴比例关键字:xscale
+ 设置y轴比例关键字:yscale
+ 取值形式可选:{"linear", "log", "symlog", "logit", ...}
- 设置子图的宽高比:
+ 关键字:box\_aspect
+ 取值形式为:浮点型
- 设置轴位置:
+ 关键字:set\_position
+ 取值形式为:列表形式,[left, bottom, width, height]
- 导入matplotlib.pyplot模块和matplotlib.Figure模块
- 准备数据,可以使用numpy/pandas整理数据
- 调用子图方法创建子图
- 调用绘制图形方法折线图plot,pie,bar等
4.小试牛刀
我们使用pyplot.subplot()方法绘制子图
- 首先,我们使用np.random.randint()生成x,y轴数据
1 | python复制代码import numpy as np |
- 结合for循环调用方法pyplot.subplot()方法在画布上创建四个子图对象
1 | python复制代码import matplotlib.pyplot as plt |
- 每个子图调用pyplot.bar()方法绘制柱状图
1 | python复制代码plt.bar(x,y) |
- 调用pyplot.tight_layout()方法调整每个子图展示画面
1 | python复制代码plt.tight_layout() |
- 最后绘制子图效果如下
总结
本次,我们对matplotlib 绘制子图方法和相关属性进行基本学习,关于子图的操作详细操作后续会继续展开。
以上是本期内容,欢迎大佬们点赞评论,下期见~
本文转载自: 掘金