Matplotlib——绘制多个子图(Axes)及其布局

本文介绍如何用matplotlib绘制多个子图,并介绍控制它们布局的方法。按照其布局方式,分为均一排布,规整排布和跨行列排布三种。

一.均一排布plt.subplots()

均一排布的含义:所有子图的大小相同,规整的按行列排布在画布上。
强调:subplots()是plt类下属的方法。

1.subplots()控制布局

subplot函数及其重要参数:plt.subplots(row_number, column_number, figsize=(width, height), sharex=True, sharey=True)

row_number, column_number:一共生成多少行,多少列的子图(axes)。
figsize=(width, height):指定整个画布的大小。

这两个参数综合起来理解就是:创建一个大小为figsize的画布,并把画布按row_number, column_number划分成均一的子图框格,框格里可以添加子图(axes)。

sharex=True , sharey=True :是否共享横轴和纵轴刻度。
下图是一个共享x轴刻度,但是不共享y轴刻度是示例。前两行的x轴刻度因为相同,所以隐藏了。(x轴,y轴刻度的设置见第3个小标题)

在这里插入图片描述

返回值:plt.subplots()返回 类似的 [ [figure], [axes1, axes2…] ]类似的东西,需要用两个变量解包接受。读者可以自行打印返回结果验证一下。从返回值的类型我们需要知道:plt.subplots()不仅创建了figure,把布局规划好,且且为我们在每个子图框中创建了axes。关于解包,请参考这篇博客:https://editor.csdn.net/md/?articleId=111387910

2.suptitle() 添加画布的标题

fig.suptitle('引号里添加标题', size=number)

3.用axes类及其方法绘制子图

选定一个子图框
若axs为创建的axes变量名,使用axs[i][j]选中第i+1行j+1列的子图框。

绘图方法
axes类定义了和plt类似的绘图方法:.plot, .hist(), .scatter(), .bar(), barh.(), pie.()等,直接使用即可。

子图标题,坐标头与坐标轴范围

  1. 标题:axs[0][0].set_titile(‘引号里输入子图标题’)
  2. 坐标头:axs[0][0].set_xlabel(‘横坐标头’) , axs[0][0].set_ylable(‘纵坐标头’)
  3. 坐标轴范围:axs[0][0].set_xlim(min,max) , axs[0][0].set_ylim(min,max)

4.示例

import matplotlib.pyplot as plt
import numpy as np

#把画布分为三行五列,并设置figure标题
fig,axs=plt.subplots(3,3,figsize=(15,15),sharex=True,sharey=False)
fig.suptitle('use .suptitle() to add a figure title'
  • 19
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值