matplotlib.figure.Figure.subplots#
- Figure.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None)[源代码]#
向此图形添加一组子图。
这个实用程序封装使得通过一次调用即可方便地创建常见子图布局。
- 参数:
- nrows, ncolsint, 默认值: 1
子图网格的行数/列数。
- sharex, sharey布尔值或 {'none', 'all', 'row', 'col'},默认值:False
控制x轴(sharex)或y轴(sharey)的共享:
True 或 'all':所有子图将共享 x 轴或 y 轴。
False 或 'none':每个子图的 x 轴或 y 轴将是独立的。
'row': 每个子图行将共享一个 x 或 y 轴。
'col': 每个子图列将共享一个 x 轴或 y 轴。
当子图在列中共享 x 轴时,只有底部子图的 x 刻度标签会被创建。同样地,当子图在行中共享 y 轴时,只有第一列子图的 y 刻度标签会被创建。要稍后打开其他子图的刻度标签,请使用
tick_params
。当子图共享一个具有单位的轴时,调用
Axis.set_units
将使用新单位更新每个轴。请注意,无法取消共享轴。
- 挤压bool, 默认值: True
如果为 True,额外的维度将从返回的 Axes 数组中被压缩出去:
如果只构建了一个子图(nrows=ncols=1),则返回的单个 Axes 对象作为标量返回。
对于 Nx1 或 1xM 的子图,返回的对象是一个 Axes 对象的一维 numpy 对象数组。
对于 NxM,当 N>1 且 M>1 时,子图将作为二维数组返回。
如果为 False,则不会进行任何压缩:返回的 Axes 对象始终是一个包含 Axes 实例的 2D 数组,即使它最终是 1x1。
- width_ratios : 长度为 ncols 的类数组对象, 可选长度为的类数组
定义列的相对宽度。每列的相对宽度为
width_ratios[i] / sum(width_ratios)
。如果没有给出,所有列将具有相同的宽度。等同于gridspec_kw={'width_ratios': [...]}
。- height_ratios : 长度为 nrows 的类数组对象, 可选长度为的类数组
定义行的相对高度。每一行的高度为
height_ratios[i] / sum(height_ratios)
。如果没有给出,所有行将具有相同的高度。等同于gridspec_kw={'height_ratios': [...]}
。- subplot_kwdict, 可选
传递给
Figure.add_subplot
调用的关键字参数字典,用于创建每个子图。- gridspec_kwdict, 可选
传递给
GridSpec
构造函数的带有关键字的字典,用于创建子图放置的网格。
- 返回:
示例
# First create some toy data: x = np.linspace(0, 2*np.pi, 400) y = np.sin(x**2) # Create a figure fig = plt.figure() # Create a subplot ax = fig.subplots() ax.plot(x, y) ax.set_title('Simple plot') # Create two subplots and unpack the output array immediately ax1, ax2 = fig.subplots(1, 2, sharey=True) ax1.plot(x, y) ax1.set_title('Sharing Y axis') ax2.scatter(x, y) # Create four polar Axes and access them through the returned array axes = fig.subplots(2, 2, subplot_kw=dict(projection='polar')) axes[0, 0].plot(x, y) axes[1, 1].scatter(x, y) # Share an X-axis with each column of subplots fig.subplots(2, 2, sharex='col') # Share a Y-axis with each row of subplots fig.subplots(2, 2, sharey='row') # Share both X- and Y-axes with all subplots fig.subplots(2, 2, sharex='all', sharey='all') # Note that this is the same as fig.subplots(2, 2, sharex=True, sharey=True)