matplotlib.pyplot.subplots #
- matplotlib.pyplot。子图(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 int,默认值:1
子图网格的行/列数。
- sharex, sharey bool or {'none', 'all', 'row', 'col'},默认值:False
控制 x ( sharex ) 或 y ( sharey ) 轴之间的属性共享:
True 或 'all':x 轴或 y 轴将在所有子图中共享。
假或“无”:每个子图的 x 轴或 y 轴都是独立的。
“行”:每个子图行将共享一个 x 轴或 y 轴。
'col':每个子图列将共享一个 x 轴或 y 轴。
当子图沿列具有共享 x 轴时,仅创建底部子图的 x 刻度标签。类似地,当子图在一行上有一个共享的 y 轴时,只会创建第一列子图的 y 刻度标签。要稍后打开其他子图的刻度标签,请使用
tick_params
.当子图具有具有单位的共享轴时,调用
set_units
将使用新单位更新每个轴。- 挤压布尔,默认值:真
如果为 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': [...]}
- 长度为nrows的height_ratios数组,可选
定义行的相对高度。每行的相对高度为. 如果没有给出,所有行将具有相同的高度。方便。
height_ratios[i] / sum(height_ratios)
gridspec_kw={'height_ratios': [...]}
- subplot_kw字典,可选
带有传递给
add_subplot
用于创建每个子图的调用的关键字的字典。- gridspec_kw字典,可选
带有传递给构造函数的关键字的字典,该
GridSpec
构造函数用于创建放置子图的网格。- **fig_kw
所有其他关键字参数都传递给
pyplot.figure
调用。
- 返回:
- 图
Figure
- 轴
Axes
或轴数组 Axes
如果创建了多个子图,则ax可以是单个对象,也可以是一组 Axes 对象。结果数组的尺寸可以用squeeze关键字控制,见上文。处理返回值的典型习惯用法是:
# using the variable ax for single a 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 a 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
图标签:suptitle、supxlabel、supylabel
具有自动缩放功能的 Line、Poly 和 RegularPoly 集合
使用 Rectangles 和 PolyCollections 构建直方图
使用 ConciseDateFormatter 格式化日期刻度