Python每日一记81>>>matplotlib进阶之plt.subplots()的理解

昨天在手机上浪费的时间又变多了,自律性有所下降,后期会坚持自律,少玩手机。

昨晚想要学习下动态图的创建,结果就遇到了一个没见过的fig,ax=plt.subplots(),不理解其中的含义,就网上找文章学习了一下。
其实这个等价与下面的代码:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
还记得之前我们创建两个子图的的代码时这样的:
fig = plt.figure()
ax1 = fig.add_subplot(2,1,1)#选择第一个子图
##画第一幅图
plt.plot()
ax12= fig.add_subplot(2,1,2)#选择第二个子图
##画第二幅图
plt.plot()
以上就是我们分开创建figure对象和axex对象,其实是可以直接一起创建的,那就是用plt.subplots()。
其参数如下:
subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,subplot_kw=None, gridspec_kw=None, **fig_kw)
1、nrows,ncols:
子图的行列数。

2、sharex, sharey:
设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。
3、squeeze:
默认为 True,是设置返回的子图对象的数组格式。
当为 False 时,不论返回的子图是只有一个还是只有一行,都会用二维数组格式返回他的对象。
当为 True 时,如果设置的子图是(nrows=ncols=1),即子图只有一个,则返回的子图对象是一个标量的形式,如果子图有(N×1)或者(1×N)个,则返回的子图对象是一个一维数组的格式,如果是(N×M)则是返回二位格式。

4、subplot_kw:
字典格式,传递给 add_subplot() ,用于创建子图。

5、gridspec_kw:
字典格式,传递给 GridSpec 的构造函数,用于创建子图所摆放的网格。
class matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
如,设置 gridspec_kw={‘height_ratios’: [3, 1]} 则子图在列上的分布比例是3比1。

6、**fig_kw :
所有其他关键字参数都传递给 figure()调用。
如,设置 figsize=(21, 12) ,则设置了图像大小。

7、返回值
fig: matplotlib.figure.Figure 对象
ax:子图对象( matplotlib.axes.Axes)或者是他的数组

我们可以看看ax返回的什么对象:
在这里插入图片描述
在这里插入图片描述
那么我们如何定位到每个子图呢?那就是用列表的索引形式:
在这里插入图片描述
在这里插入图片描述
然后绘图就是基于选定的子图进行作图
如ax[0,1].plot()
当然也可以像下面的方式定位子图
在这里插入图片描述
在这里插入图片描述
具体的参数解释和更多学习见以下链接,写的很详细:
https://blog.csdn.net/tz_zs/article/details/81069499

这里直接上代码小小的实验一下:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值