matplotlib.pyplot.subplots#

matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, width_ratios=None, height_ratios=None, subplot_kw=None, gridspec_kw=None, **fig_kw)[源码]#

创建一个图和一组子图。

这个实用程序包装器方便地通过一次调用创建子图的常见布局,包括包含的图对象。

参数:
nrows, ncols整型, 默认值: 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 将使用新单位更新每个坐标轴。

请注意,无法取消共享轴。

squeeze布尔型, 默认值: True
  • 如果为 True,则从返回的 Axes 数组中压缩掉多余的维度。

    • 如果只构造一个子图 (nrows=ncols=1),则结果单个 Axes 对象将作为标量返回。

    • 对于 Nx1 或 1xM 子图,返回的对象是 Axes 对象的 1D numpy 对象数组。

    • 对于 NxM,N>1 且 M>1 的子图将作为 2D 数组返回。

  • 如果为 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_kw字典,可选

包含传递给 add_subplot 调用(用于创建每个子图)的关键字参数的字典。

gridspec_kw字典,可选

包含传递给 GridSpec 构造函数(用于创建放置子图的网格)的关键字参数的字典。

**fig_kw

所有额外的关键字参数都将传递给 pyplot.figure 调用。

返回:
figFigure
axAxes 或 Axes 数组

ax 可以是单个 Axes 对象,如果创建了多个子图,则为 Axes 对象数组。所得数组的维度可以通过 squeeze 关键字进行控制,见上文。

处理返回值时的典型用法是

# using the variable ax for a single Axes
fig, ax = plt.subplots()

# using the variable axs for multiple Axes
fig, axs = plt.subplots(2, 2)

# using tuple unpacking for multiple Axes
fig, (ax1, ax2) = plt.subplots(1, 2)
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)

推荐使用名称 ax 和复数形式 axs,而不使用 axes,因为后者不清楚是指单个 Axes 实例还是它们的集合。

示例

# First create some toy data:
x = np.linspace(0, 2*np.pi, 400)
y = np.sin(x**2)

# Create just a figure and only one subplot
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple plot')

# Create two subplots and unpack the output array immediately
f, (ax1, ax2) = plt.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
fig, axs = plt.subplots(2, 2, subplot_kw=dict(projection="polar"))
axs[0, 0].plot(x, y)
axs[1, 1].scatter(x, y)

# Share an X axis with each column of subplots
plt.subplots(2, 2, sharex='col')

# Share a Y axis with each row of subplots
plt.subplots(2, 2, sharey='row')

# Share both X and Y axes with all subplots
plt.subplots(2, 2, sharex='all', sharey='all')

# Note that this is the same as
plt.subplots(2, 2, sharex=True, sharey=True)

# Create figure number 10 with a single subplot
# and clears it if it already exists.
fig, ax = plt.subplots(num=10, clear=True)

使用 matplotlib.pyplot.subplots 的示例#

折线图

折线图

线条样式

线条样式

虚线样式配置

虚线样式配置

Markevery 演示

Markevery 演示

标记参考

标记参考

无限线条

无限线条

多色线条

多色线条

带有刻度路径效果的线条

带有刻度路径效果的线条

带标签的组合条形图

带标签的组合条形图

带标签的条形图

带标签的条形图

堆叠条形图

堆叠条形图

具有独立条形颜色的条形图

具有独立条形颜色的条形图

锥形图

锥形图

带渐变的条形图

带渐变的条形图

水平条形图

水平条形图

离散分布作为水平条形图

离散分布作为水平条形图

断裂水平条

断裂水平条

散点图演示2

散点图演示2

将标记属性映射到多变量数据

将标记属性映射到多变量数据

标记示例

标记示例

带图例的散点图

带图例的散点图

阶梯图演示

阶梯图演示

填充多边形

填充多边形

带透明度的 fill_between

带透明度的 fill_between

填充两条线之间的区域

填充两条线之间的区域

填充两条垂直线之间的区域

填充两条垂直线之间的区域

堆叠图和流图

堆叠图和流图

Eventplot 演示

Eventplot 演示

带线条、日期和文本的时间线

带线条、日期和文本的时间线

hlines 和 vlines

hlines 和 vlines

使用 fill_between 填充由逻辑掩码定义的区域

使用 fill_between 填充由逻辑掩码定义的区域

绘制分类变量

绘制分类变量

绘制图像的多种方式

绘制图像的多种方式

带掩码值的图像

带掩码值的图像

多个图像带一个颜色条

多个图像带一个颜色条

修改坐标格式化程序

修改坐标格式化程序

图像重采样

图像重采样

imshow 的插值

imshow 的插值

在二维图像中将透明度与颜色混合

在二维图像中将透明度与颜色混合

着色示例

着色示例

用补丁裁剪图像

用补丁裁剪图像

放置图像,保持相对尺寸

放置图像,保持相对尺寸

pcolor 图像

pcolor 图像

pcolormesh

pcolormesh

pcolormesh 网格和着色

pcolormesh 网格和着色

非均匀图像

非均匀图像

QuadMesh 演示

QuadMesh 演示

三角图演示

三角图演示

三角颜色图演示

三角颜色图演示

三角等高线演示

三角等高线演示

三角平滑用户等高线

三角平滑用户等高线

三角平滑 Delaunay 等高线

三角平滑 Delaunay 等高线

三角梯度演示

三角梯度演示

三角插值演示

三角插值演示

不规则间隔数据的等高线图

不规则间隔数据的等高线图

等高线演示

等高线演示

等高线标签演示

等高线标签演示

填充等高线演示

填充等高线演示

等高线图像

等高线图像

填充等高线和对数颜色刻度

填充等高线和对数颜色刻度

填充等高线图案

填充等高线图案

等高线角掩码

等高线角掩码

优化解空间的等高线图

优化解空间的等高线图

简单颤动图演示

简单颤动图演示

高级颤动图和颤动图键函数

高级颤动图和颤动图键函数

风羽

风羽

流线图

流线图

色彩映射范围的交互式调整

色彩映射范围的交互式调整

色彩映射归一化

色彩映射归一化

色彩映射归一化 SymLogNorm

色彩映射归一化 SymLogNorm

带注释的热力图

带注释的热力图

图像的仿射变换

图像的仿射变换

Spy 演示

Spy 演示

频谱图

频谱图

BboxImage 演示

BboxImage 演示

水印图像

水印图像

误差条函数

误差条函数

指定误差条的不同方式

指定误差条的不同方式

误差条子采样

误差条子采样

在误差条中包含上限和下限

在误差条中包含上限和下限

使用 PatchCollection 从误差条创建框

使用 PatchCollection 从误差条创建框

绘制二维数据集的置信椭圆

绘制二维数据集的置信椭圆

带误差带的曲线

带误差带的曲线

直方图

直方图

直方图函数不同 histtype 设置的演示

直方图函数不同 histtype 设置的演示

直方图箱、密度和权重

直方图箱、密度和权重

具有多个数据集的直方图 (hist) 函数

具有多个数据集的直方图 (hist) 函数

多个直方图并排

多个直方图并排

双直方图

双直方图

六边形分箱图

六边形分箱图

时间序列直方图

时间序列直方图

箱线图

箱线图

箱线图中艺术家的自定义

箱线图中艺术家的自定义

具有自定义填充颜色的箱线图

具有自定义填充颜色的箱线图

箱线图的单独计算和绘制

箱线图的单独计算和绘制

箱线图与小提琴图比较

箱线图与小提琴图比较

小提琴图基础

小提琴图基础

小提琴图自定义

小提琴图自定义

互相关和自相关

互相关和自相关

功率谱密度 (PSD)

功率谱密度 (PSD)

互谱密度 (CSD)

互谱密度 (CSD)

绘制两个信号的相干性

绘制两个信号的相干性

饼图

饼图

饼中条形图

饼中条形图

嵌套饼图

嵌套饼图

带标签的饼图和甜甜圈图

带标签的饼图和甜甜圈图

饼图标注

饼图标注

极坐标图

极坐标图

多个子图

多个子图

使用 plt.subplots 创建多个子图

使用 plt.subplots 创建多个子图

坐标轴演示

坐标轴演示

使用 subplots 和 GridSpec 组合两个子图

使用 subplots 和 GridSpec 组合两个子图

使用受限布局调整坐标轴大小

使用受限布局调整坐标轴大小

使用紧密布局调整坐标轴大小

使用紧密布局调整坐标轴大小

以编程方式控制子图调整

以编程方式控制子图调整

相邻子图

相邻子图

使用边距和粘性边缘控制视图限制

使用边距和粘性边缘控制视图限制

坐标轴框纵横比

坐标轴框纵横比

相等坐标轴纵横比

相等坐标轴纵横比

不同单位的图形大小

不同单位的图形大小

图形子图形

图形子图形

共享坐标轴

共享坐标轴

反向坐标轴

反向坐标轴

带有不同刻度的图

带有不同刻度的图

同一坐标轴上的不同刻度

同一坐标轴上的不同刻度

带有坐标轴脊线的多个 Y 轴

带有坐标轴脊线的多个 Y 轴

带有 delta_zorder 的双轴图

带有 delta_zorder 的双轴图

次坐标轴

次坐标轴

对齐标签和标题

对齐标签和标题

坐标轴标签位置

坐标轴标签位置

坐标轴属性

坐标轴属性

图形标签:suptitle, supxlabel, supylabel

图形标签:suptitle, supxlabel, supylabel

缩放区域插入坐标轴

缩放区域插入坐标轴

断裂坐标轴

断裂坐标轴

绘制跨越坐标轴的区域

绘制跨越坐标轴的区域

自动设置刻度位置

自动设置刻度位置

刻度定位器

刻度定位器

主次刻度

主次刻度

对齐刻度标签

对齐刻度标签

将 x/y 轴刻度和标签移至顶部和右侧

将 x/y 轴刻度和标签移至顶部和右侧

刻度之间居中标签

刻度之间居中标签

旋转刻度标签

旋转刻度标签

多级(嵌套)刻度

多级(嵌套)刻度

默认刻度格式化程序

默认刻度格式化程序

自定义刻度器

自定义刻度器

美元刻度

美元刻度

使用工程记数法格式化刻度

使用工程记数法格式化刻度

SI 前缀偏移量和自然数量级顺序

SI 前缀偏移量和自然数量级顺序

从值列表设置刻度标签

从值列表设置刻度标签

日期刻度标签

日期刻度标签

日期刻度定位器和格式化程序

日期刻度定位器和格式化程序

使用 ConciseDateFormatter 格式化日期刻度

使用 ConciseDateFormatter 格式化日期刻度

日期转换器演示

日期转换器演示

使用重复规则放置日期刻度

使用重复规则放置日期刻度

时间序列的自定义刻度格式化程序

时间序列的自定义刻度格式化程序

日期精度和纪元

日期精度和纪元

颜色条(Colorbar)刻度标签

颜色条(Colorbar)刻度标签

修复过多刻度

修复过多刻度

刻度概览

刻度概览

对数对数纵横比

对数对数纵横比

对数刻度

对数刻度

Logit 刻度

Logit 刻度

探索归一化

探索归一化

Symlog 刻度

Symlog 刻度

坐标轴脊线

坐标轴脊线

掉落的坐标轴脊线

掉落的坐标轴脊线

带箭头的居中坐标轴脊线

带箭头的居中坐标轴脊线

文本对齐

文本对齐

多行文本

多行文本

数据坐标中的文本旋转角度

数据坐标中的文本旋转角度

将文本用作路径

将文本用作路径

注释图

注释图

注释图表

注释图表

括号箭头上的角度注释

括号箭头上的角度注释

注释箭头样式参考

注释箭头样式参考

放置文本框

放置文本框

作为注释的艺术家对象

作为注释的艺术家对象

比例不变角度标签

比例不变角度标签

图例演示

图例演示

使用预定义标签的图例

使用预定义标签的图例

组合自定义图例

组合自定义图例

图例演示

图例演示

带重音的文本

带重音的文本

配置字体系列

配置字体系列

使用 ttf 字体文件

使用 ttf 字体文件

字体表

字体表

数学文本

数学文本

数学字体系列

数学字体系列

使用 TeX 渲染数学方程

使用 TeX 渲染数学方程

艺术家内部的艺术家

艺术家内部的艺术家

标题定位

标题定位

文本水印

文本水印

箭头指南

箭头指南

线、多边形和正多边形集合

线、多边形和正多边形集合

复合路径

复合路径

海豚

海豚

嗯…甜甜圈!!!

嗯…甜甜圈!!!

带方向箭头的椭圆演示

带方向箭头的椭圆演示

椭圆集合

椭圆集合

椭圆演示

椭圆演示

绘制花式框

绘制花式框

孵化图案样式参考

孵化图案样式参考

Hatchcolor 演示

Hatchcolor 演示

使用 LineCollection 绘制多条线

使用 LineCollection 绘制多条线

圆、扇形和多边形

圆、扇形和多边形

PathPatch 对象

PathPatch 对象

贝塞尔曲线

贝塞尔曲线

颜色演示

颜色演示

按 Y 值着色

按 Y 值着色

默认属性周期中的颜色

默认属性周期中的颜色

命名颜色序列

命名颜色序列

颜色条

颜色条

作为颜色条的直方图

作为颜色条的直方图

色彩映射参考

色彩映射参考

从颜色列表创建色彩映射

从颜色列表创建色彩映射

从色彩映射中选择单个颜色

从色彩映射中选择单个颜色

命名颜色列表

命名颜色列表

设置颜色 Alpha 值的多种方式

设置颜色 Alpha 值的多种方式

《黑客的贝叶斯方法》样式表

《黑客的贝叶斯方法》样式表

深色背景样式表

深色背景样式表

FiveThirtyEight 样式表

FiveThirtyEight 样式表

ggplot 样式表

ggplot 样式表

灰度样式表

灰度样式表

样式表参考

样式表参考

将数据裁剪到坐标轴视图限制

将数据裁剪到坐标轴视图限制

三维曲面图中的自定义山体阴影

三维曲面图中的自定义山体阴影

三维图投影类型

三维图投影类型

三维茎叶图

三维茎叶图

三维曲面(色彩映射)

三维曲面(色彩映射)

单方向三维线框图

单方向三维线框图

定位方向箭头

定位方向箭头

HBoxDivider 和 VBoxDivider 演示

HBoxDivider 和 VBoxDivider 演示

使用 RGBAxes 显示 RGB 通道

使用 RGBAxes 显示 RGB 通道

带 AxesDivider 的颜色条

带 AxesDivider 的颜色条

使用 inset_locator.inset_axes 控制颜色条的位置和大小

使用 inset_locator.inset_axes 控制颜色条的位置和大小

插入定位器演示

插入定位器演示

插入定位器演示 2

插入定位器演示 2

使用可定位坐标轴将直方图对齐散点图

使用可定位坐标轴将直方图对齐散点图

简单锚定艺术家

简单锚定艺术家

基础动画线图

基础动画线图

衰减

衰减

动画直方图

动画直方图

pyplot 动画

pyplot 动画

贝叶斯更新

贝叶斯更新

使用预计算图像列表的动画图像

使用预计算图像列表的动画图像

多坐标轴动画

多坐标轴动画

暂停和恢复动画

暂停和恢复动画

保存为 GIF 的动画散点图

保存为 GIF 的动画散点图

示波器

示波器

带注释光标

带注释光标

按钮

按钮

复选按钮

复选按钮

光标

光标

套索选择器

套索选择器

鼠标光标

鼠标光标

多光标

多光标

使用多边形选择器从集合中选择索引

使用多边形选择器从集合中选择索引

多边形选择器

多边形选择器

单选按钮网格

单选按钮网格

使用 RangeSlider 进行图像缩放

使用 RangeSlider 进行图像缩放

滑块

滑块

将滑块捕捉到离散值

将滑块捕捉到离散值

跨度选择器

跨度选择器

文本框

文本框

鼠标移动和点击事件

鼠标移动和点击事件

十字光标

十字光标

数据浏览器

数据浏览器

图形/坐标轴进入和离开事件

图形/坐标轴进入和离开事件

滚动事件

滚动事件

按键事件

按键事件

图例选择

图例选择

放大镜

放大镜

路径编辑器

路径编辑器

选择事件演示

选择事件演示

选择事件演示 2

选择事件演示 2

多边形编辑器

多边形编辑器

乒乓球

乒乓球

数据重采样

数据重采样

计时器

计时器

Trifinder 事件演示

Trifinder 事件演示

视图限制

视图限制

缩放修改其他坐标轴

缩放修改其他坐标轴

带 GTK3 的 pyplot

带 GTK3 的 pyplot

带 GTK4 的 pyplot

带 GTK4 的 pyplot

SVG 工具提示

SVG 工具提示

带单位的注释

带单位的注释

艺术家测试

艺术家测试

带单位的条形图演示

带单位的条形图演示

带单位的组合条形图

带单位的组合条形图

埃文斯测试

埃文斯测试

弧度刻度

弧度刻度

英寸和厘米

英寸和厘米

单位处理

单位处理

锚定艺术家

锚定艺术家

识别艺术家是否相交

识别艺术家是否相交

手动等高线

手动等高线

坐标报告

坐标报告

自定义投影

自定义投影

AGG 过滤器

AGG 过滤器

彩带框

彩带框

直接向图形添加线条

直接向图形添加线条

Findobj 演示

Findobj 演示

使用矩形和多边形集合构建直方图

使用矩形和多边形集合构建直方图

使用关键字绘图

使用关键字绘图

多进程

多进程

簇状气泡图

簇状气泡图

路径效果演示

路径效果演示

矢量图形的光栅化

矢量图形的光栅化

TickedStroke 路径效果

TickedStroke 路径效果

Zorder 演示

Zorder 演示

曲线下面积的积分

曲线下面积的积分

32 年来的股票价格

32 年来的股票价格

山体阴影

山体阴影

安斯库姆四重奏

安斯库姆四重奏

石川图

石川图

雷达图(又称蜘蛛图或星图)

雷达图(又称蜘蛛图或星图)

地形山体阴影

地形山体阴影

绘图的生命周期

绘图的生命周期

编程快捷方式

编程快捷方式

plot(x, y)

plot(x, y)

scatter(x, y)

scatter(x, y)

bar(x, height)

bar(x, height)

stem(x, y)

stem(x, y)

fill_between(x, y1, y2)

fill_between(x, y1, y2)

stackplot(x, y)

stackplot(x, y)

stairs(values)

stairs(values)

hist(x)

hist(x)

boxplot(X)

boxplot(X)

errorbar(x, y, yerr, xerr)

errorbar(x, y, yerr, xerr)

violinplot(D)

violinplot(D)

eventplot(D)

eventplot(D)

hist2d(x, y)

hist2d(x, y)

hexbin(x, y, C)

hexbin(x, y, C)

pie(x)

pie(x)

ecdf(x)

ecdf(x)

imshow(Z)

imshow(Z)

pcolormesh(X, Y, Z)

pcolormesh(X, Y, Z)

contour(X, Y, Z)

contour(X, Y, Z)

contourf(X, Y, Z)

contourf(X, Y, Z)

barbs(X, Y, U, V)

barbs(X, Y, U, V)

quiver(X, Y, U, V)

quiver(X, Y, U, V)

streamplot(X, Y, U, V)

streamplot(X, Y, U, V)

tricontour(x, y, z)

tricontour(x, y, z)

tricontourf(x, y, z)

tricontourf(x, y, z)

tripcolor(x, y, z)

tripcolor(x, y, z)

triplot(x, y)

triplot(x, y)

bar3d(x, y, z, dx, dy, dz)

bar3d(x, y, z, dx, dy, dz)

fill_between(x1, y1, z1, x2, y2, z2)

fill_between(x1, y1, z1, x2, y2, z2)

plot(xs, ys, zs)

plot(xs, ys, zs)

quiver(X, Y, Z, U, V, W)

quiver(X, Y, Z, U, V, W)

scatter(xs, ys, zs)

scatter(xs, ys, zs)

stem(x, y, z)

stem(x, y, z)

plot_surface(X, Y, Z)

plot_surface(X, Y, Z)

plot_trisurf(x, y, z)

plot_trisurf(x, y, z)

voxels([x, y, z], filled)

voxels([x, y, z], filled)

plot_wireframe(X, Y, Z)

plot_wireframe(X, Y, Z)

快速入门指南

快速入门指南

使用 Matplotlib 制作动画

使用 Matplotlib 制作动画

使用 blitting 提高渲染速度

使用 blitting 提高渲染速度

使用 cycler 进行样式设置

使用 cycler 进行样式设置

路径教程

路径教程

变换教程

变换教程

在图中排列多个坐标轴

在图中排列多个坐标轴

坐标轴自动缩放

坐标轴自动缩放

坐标轴刻度

坐标轴刻度

坐标轴刻度

坐标轴刻度

绘制日期和字符串

绘制日期和字符串

放置颜色条

放置颜色条

约束布局指南

约束布局指南

图例指南

图例指南

紧凑布局指南

紧凑布局指南

定制颜色条教程

定制颜色条教程

在 Matplotlib 中创建颜色映射

在 Matplotlib 中创建颜色映射

颜色映射归一化

颜色映射归一化

在 Matplotlib 中选择颜色映射

在 Matplotlib 中选择颜色映射

指定颜色

指定颜色

注解

注解

Matplotlib 中的文本

Matplotlib 中的文本