[Matplotlib] subplot 理解

前言

在看Matplotlib,把自己理解的记录一下。

正文

在 Matplotlib Simple Plot 的代码中,有这样一行:

fig, ax = plt.subplots()
  •  

plt.subplots() 返回一个 Figure实例fig 和一个 AxesSubplot实例ax 。这个很好理解,fig代表整个图像,ax代表坐标轴和画的图。 
但是,将上述代码改为

fig, ax = plt.subplots(2,3)

时fig依旧是Figure实例,ax就变成ndarray了,显示一下fig:

这里写图片描述

其实ax很好理解: 
我们看一下ax的元素是什么:

print (ax)
#输出:
[[<matplotlib.axes._subplots.AxesSubplot object at 0x000000CED4AEB5C0>
  <matplotlib.axes._subplots.AxesSubplot object at 0x000000CECD469630>
  <matplotlib.axes._subplots.AxesSubplot object at 0x000000CECD27C898>]
 [<matplotlib.axes._subplots.AxesSubplot object at 0x000000CED4779CF8>
  <matplotlib.axes._subplots.AxesSubplot object at 0x000000CECD4477B8>
  <matplotlib.axes._subplots.AxesSubplot object at 0x000000CECD1BC748>]]

说明ax是保存 AxesSubplot实例 的 ndarray数组。 
看一下ax中的元素:

print(ax[0][0])
print(ax[0][1])
print(ax[0][2])
print(ax[1][0])
print(ax[1][1])
print(ax[1][2])
#输出:
Axes(0.125,0.536818;0.227941x0.343182)
Axes(0.398529,0.536818;0.227941x0.343182)
Axes(0.672059,0.536818;0.227941x0.343182)
Axes(0.125,0.125;0.227941x0.343182)
Axes(0.398529,0.125;0.227941x0.343182)
Axes(0.672059,0.125;0.227941x0.343182)

我们在将上述Axes画在一个图中:

import matplotlib.pyplot as plt
import matplotlib.patches as patches

fig1 = plt.figure()
ax1 = fig1.add_subplot(111, aspect='equal')
ax1.add_patch(
    patches.Rectangle(
        (0.125,0.536818),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

ax1.add_patch(
    patches.Rectangle(
        (0.398529,0.536818),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

ax1.add_patch(
    patches.Rectangle(
        (0.672059,0.536818),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

ax1.add_patch(
    patches.Rectangle(
        (0.125,0.125),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

ax1.add_patch(
    patches.Rectangle(
        (0.398529,0.125),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

ax1.add_patch(
    patches.Rectangle(
        (0.672059,0.125),   # (x,y)
        0.227941,          # width
        0.343182,          # height
    )
)

# fig1.savefig('rect1.png', dpi=90, bbox_inches='tight')
plt.show()

输出:

这里写图片描述

这样就可以诠释plt.subplots的返回值了。

版权声明:本文为博主原创文章,转载时请注明出处。 https://blog.csdn.net/u012762410/article/details/78968708

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值