Python matplotlib 绘制子图概述 复习回顾

这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

复习回顾

我们在前面对matplotlib模块基本模块的认识,到对matplotlib.plot模块绘制折线图、柱状图饼图等,往期文章的内容快速查看

在统计图表中,能详细地展现数据信息,往往我们都需要绘制多个子图帮助展示数据,pyplot.subplot()、Figure.add_subplot、pyplot.axes()等方法来绘制不同场景的子图

image.png

本期,我们将学习matplotlib绘制子图的方法,Let’s go~

  1. 子图介绍

我们之前在学习matplotlib模块底层时,都知道matplotlib模块主要分为脚本层、美工层、后端,其中在美工层中,我们对图表组成的元素包括:Figure->Axes->Axis

image.png

  • 怎么才能在图表中放下其他的图表呢?

这个时候我们需要在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()方法
  1. 子图属性

在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]
  1. 绘制子图步骤

  1. 导入matplotlib.pyplot模块和matplotlib.Figure模块
  2. 准备数据,可以使用numpy/pandas整理数据
  3. 调用子图方法创建子图
  4. 调用绘制图形方法折线图plot,pie,bar等

4.小试牛刀

我们使用pyplot.subplot()方法绘制子图

  • 首先,我们使用np.random.randint()生成x,y轴数据
1
2
3
4
python复制代码import numpy as np
x = np.random.randint(0,100,25)

y = np.random.randint(0,100,25)
  • 结合for循环调用方法pyplot.subplot()方法在画布上创建四个子图对象
1
2
3
python复制代码import matplotlib.pyplot as plt
for i in range(1,5):
plt.subplot(2,2,i,fc="#88c999",xlabel="x label",ylabel="y label",title="subplot",aspect="auto")
  • 每个子图调用pyplot.bar()方法绘制柱状图
1
python复制代码plt.bar(x,y)
  • 调用pyplot.tight_layout()方法调整每个子图展示画面
1
python复制代码plt.tight_layout()
  • 最后绘制子图效果如下

image.png

总结

本次,我们对matplotlib 绘制子图方法和相关属性进行基本学习,关于子图的操作详细操作后续会继续展开。

以上是本期内容,欢迎大佬们点赞评论,下期见~

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%