Python使用matplotlib绘图——fig,ax = plt.subplots()

1. fig,ax = plt.subplots()

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

参数:

nrows,ncols:

    子图的行列数。

sharex, sharey:

    设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
    设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
    设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
    设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。

squeeze:

    默认为 True,是设置返回的子图对象的数组格式。
    当为 False 时,不论返回的子图是只有一个还是只有一行,都会用二维数组格式返回他的对象。
    当为 True 时,如果设置的子图是(nrows=ncols=1),即子图只有一个,则返回的子图对象是一个标量的形式,如果子图有(N×1)或者(1×N)个,则返回的子图对象是一个一维数组的格式,如果是(N×M)则是返回二位格式。

subplot_kw:

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

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)

**fig_kw :

    所有其他关键字参数都传递给 figure()调用。

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

2. 控制子图

1)单行多列,按照一维数组来表示

fig, ax = plt.subplots(1, 3)  # 单行多列 1*3
ax[0].imshow(train_data[1], cmap="Greys")  # 第一个子图
ax[1].imshow(test_data[0], cmap="Greys")
ax[2].imshow(test_data[1], cmap="Greys")
plt.show()

Python使用matplotlib绘图——fig,ax = plt.subplots()_第1张图片

 

2)多行多列,按照二维数组来表示

fig, ax = plt.subplots(2, 2)  # 多行多列 2*2
ax[0, 0].imshow(train_data[0], cmap="Greys")  # 第一个子图
ax[0, 1].imshow(test_data[1], cmap="Greys")
ax[1, 0].imshow(test_data[0], cmap="Greys")
ax[1, 1].imshow(test_data[1], cmap="Greys")
plt.show()

Python使用matplotlib绘图——fig,ax = plt.subplots()_第2张图片

 


 

你可能感兴趣的:(Python学习笔记,Python,作图)