matplotlib之plt.subplots

简介

matplotlib.pyplot.subplots:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html

创建一个图像对象(figure)和一系列的子图(subplots)。

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

参数

(1)nrows, ncols

子图的行列数。

(2)sharex, sharey

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

(3)squeeze

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

(4)subplot_kw

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

(5)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)

如,设置 gridspec_kw={'height_ratios': [3, 1]} 则子图在列上的分布比例是3比1。

(6)**fig_kw

所有其他关键字参数都传递给 figure() 调用。如,设置 figsize=(21, 12) ,则设置了图像大小。

返回值

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

基本使用

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

# 创建一个子图
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Simple subplots')

plt.show()

matplotlib_subplots_basic

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

# 创建两个子图,并且共享y轴
f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)
ax1.plot(x, y)
ax1.set_title('Sharing Y axis')
ax2.scatter(x, y)

plt.show()

matplotlib_subplots_share

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

# 创建4个子图,
fig, axes = plt.subplots(2, 2, subplot_kw=dict(polar=True))  # polar: 极坐标轴
axes[0, 0].plot(x, y)
axes[1, 1].scatter(x, y)

plt.show()

matplotlib_subplots_square

import matplotlib.pyplot as plt

# 共享每列子图的x轴
# plt.subplots(2, 2, sharex='col')
# 共享每行子图的y轴
# plt.subplots(2, 2, sharey='row')
# 共享所有子图的x和y轴
# plt.subplots(2, 2, sharex='all', sharey='all')
plt.subplots(2, 2, sharex=True, sharey=True)
plt.show()

matplotlib_subplots_shareX
matplotlib_subplots_shareY
matplotlib_subplots_shareXY

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/matplotlib-plt-subplots/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
matplotlib之plt.subplots
简介 matplotlib.pyplot.subplots:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html 创建一个图像对象(figure)和一系列的子图(subplo……
<<上一篇
下一篇>>
文章目录
关闭
目 录