1、函数的功能

创建一个画布对象和一组子图对象。

2、函数的声明

fig, axs = subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

3、参数说明

 nrows :画布中包含多少行子图,默认1行。

 ncols :画布中包含多少列子图,默认1列。

import matplotlib.pyplot as plt
r1=plt.subplots()
plt.show()

 

import matplotlib.pyplot as plt
r1=plt.subplots(nrows=2,ncols=3)
plt.show()

 

 sharex :为‘col’或True时,表示所有子图共享X轴属性,默认为False。

 sharey :为‘row’或True时,表示所有子图共享Y轴属性,默认为False。

import matplotlib.pyplot as plt
plt.subplots(2, 2, sharex='col',sharey='row')
plt.show()

 

import matplotlib.pyplot as plt
plt.subplots(2, 2, sharex=True,sharey=True)
plt.show()

 

import matplotlib.pyplot as plt
plt.subplots(2, 2, sharex=True,sharey=False)
plt.show()

 

import matplotlib.pyplot as plt
plt.subplots(2, 2, sharex=False,sharey=True)
plt.show()

 

 squeeze :

值为True时,如果子图为(nrows=ncols=1),返回的子图对象是一个标量,如果子图为(nrows=1,ncols=n)或(nrows=n,ncols=1),返回的是一个一维子图数组,如果子图为(nrows=m,ncols=n),返回的是一个二维子图数组,默认为True。

值为False时,返回的是一个二维子图数组。

import matplotlib.pyplot as plt
r1,ax1=plt.subplots(nrows=1,ncols=2,squeeze=True)
print(ax1)
print(ax1.shape)
# 输出:
# [<AxesSubplot:> <AxesSubplot:>]
# (2,)
r2,ax2=plt.subplots(nrows=1,ncols=2,squeeze=False)
print(ax2)
print(ax2.shape)
# 输出:
# [[<AxesSubplot:> <AxesSubplot:>]]
# (1, 2)

r3,ax3=plt.subplots(nrows=2,ncols=2,squeeze=True)
print(ax3)
print(ax3.shape)
# 输出:
# [[<AxesSubplot:> <AxesSubplot:>]
#  [<AxesSubplot:> <AxesSubplot:>]]
# (2, 2)
r4,ax4=plt.subplots(nrows=2,ncols=2,squeeze=False)
print(ax4)
print(ax4.shape)
# 输出:
# [[<AxesSubplot:> <AxesSubplot:>]
#  [<AxesSubplot:> <AxesSubplot:>]]
# (2, 2)

4、返回值说明

 fig :返回画布本身。

 axs :返回子图数组,可以利用这个数组来访问每个子图。

import matplotlib.pyplot as plt
# 添加3行3列子图9个子图
fig, axes = plt.subplots(3, 3)
# 为第1个子图绘制图形
axes[0, 0].bar(range(1, 4), range(1, 4))
# 为第5个子图绘制图形
axes[1, 1].pie([4, 5, 6])
# 为第9个子图绘制图形
axes[2, 2].plot([1], 'o')
# 删除没有用到的子图
for i in range(3):
    for j in range(3):
        if i != j:
            axes[i, j].remove()
plt.show()

 

 

posted on 2022-11-25 16:31  yc-limitless  阅读(1358)  评论(0编辑  收藏  举报