1. 简单布局
- 简单布局通过
Figure.add_subplot(*args,**kwargs)
方法来完成,它返回的是Axes
实例。当然你也可以通过pyplot.subplot(*args,**kwargs)
函数来完成,他返回的也是Axes
实例,该函数只是一个便利函数。
SubPlot
类是Axes
类的子类。因此SubPlot
对象也是Axes
对象。
最典型用法是
matplotlib.pyplot.subplot(nrows,ncols,plot_number)
。nrows
和ncols
将图表划分成nrows*ncols
大小的网格区域,每一个区域都能存放一个SubPlot
;该函数创建plot_number
位置处的SubPlot-axes
。其中plot_number
起始于1,最大值为nrows*ncols
。如果
nrows
、ncols
、plot_number
都是个位数,则你可以指定一个三位数来简化函数调用matplotlib.pyplot.subplot(integer)
,其中百分位代表nrows
,十分位代表ncols
,各位代表plot_number
。add_subplot
其他的参数:axisbg
关键字参数:指定subplot
的背景色polar
关键字参数:指定subplot
是否是极坐标。默认为False
projection
:指定坐标方式,可以为:'aitoff'
、'hammer'
、'lambert'
、'mollweide'
、'polar'
、'rectilinear'
。当projection='polar'
等价于ploar=True
sharex
关键字参数:指定subplot
与其他Axes
(由该参数值指定)共享xaxis attribute
sharey
关键字参数:指定subplot
是否与其他Axes
(由该参数值指定)共享yaxis attribute
你可以通过
pyplot.subplots()
函数一次性的创建多个SubPlot
。pyplot.subplot()
每次只会创建一个SubPlot
。其参数有:
nrows
:行数,默认为1ncols
:列数,默认为1sharex
:- 如果为
True
,则所有SubPlot
的X axis
被共享。此时只有最后一行的X
轴可见。 - 如果为
False
,则SubPlot
的X axis
不共享,每一个SbuPlot
的X
轴可见。 - 如果为字符串
all
,则等效于True
- 如果为字符串
none
,则当小于False
- 如果为字符串
row
,则每一行的SubPlot
共享一个X
轴(与False
等效) - 如果为字符串
col
,则每一列的SubPlot
共享一个X
轴(与True
等效)
- 如果为
sharey
:- 如果为
True
,则所有SubPlot
的Y axis
被共享。此时只有第一列的Y
轴可见。 - 如果为
False
,则SubPlot
的Y axis
不共享,每一个SbuPlot
的Y
轴可见。 - 如果为字符串
all
,则等效于True
- 如果为字符串
none
,则当小于False
- 如果为字符串
row
,则每一行的SubPlot
共享一个Y
轴(与True
等效) - 如果为字符串
col
,则每一列的SubPlot
共享一个Y
轴(与False
等效)
- 如果为
squeeze
:如果为
True
:- 如果只创建了一个
SubPlot
,则返回一个变量(创建的SubPlot对象) - 如果创建了
N*1
或者1*N
个SubPlot
,则返回一个1维向量 - 如果创建了
N*M
个SubPlot
(其中N>1
,M>1
),则返回一个2维向量
- 如果只创建了一个
- 如果为
False
则始终返回一个2维向量
subplot_kw
:一个字典参数,用于传递给Axes.add_subplot()
来创建SubPlot
gridspec_kw
:一个字典参数,用于传递给GridSpec
构造函数来创建SubPlot
存放的网格fig_kw
:一个字典参数,用于传递给pyplot.figure()
函数。所有前述未能识别的感激案子参数都会传到这里。
其返回值为
figure,ax
。其中figure
是一个Figure
对象;ax
取决于squeeze
参数。