Matplotlib网格子图_Python数据分析与可视化

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')

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿松爱睡觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值