Python - matplotlib - subplot() 和 subplots() 之间的差异

python

1个回答

写回答

寒骞

2025-06-30 07:20

+ 关注

Python
Python

Python中的matplotlib库提供了多种绘图功能,其中包括subplot()和subplots()函数。这两个函数都用于创建多个子图,但在使用方式和功能上有一些差异。

首先,我们来看一下subplot()函数。subplot()函数允许我们在一个图中创建多个子图,这些子图可以放置在网格中的不同位置。subplot()函数的语法为subplot(nrows, ncols, index),其中nrows和ncols分别表示子图的行数和列数,index表示当前子图的位置。例如,subplot(2, 2, 1)表示在一个2x2的网格中创建第一个子图。在subplot()函数中,我们可以通过调用其他绘图函数来绘制不同的图形,例如折线图、柱状图等。

接下来,我们介绍一下subplots()函数。与subplot()函数不同,subplots()函数返回一个包含所有子图对象的数组。subplots()函数的语法为subplots(nrows=1, ncols=1, kwargs),其中nrows和ncols表示子图的行数和列数,kwargs表示其他可选参数。使用subplots()函数创建子图数组后,我们可以通过索引访问每个子图对象,并在其上绘制图形。

下面我们通过一个具体的案例来演示subplot()和subplots()函数的使用。

首先,我们导入matplotlib库和numpy库,并生成一些示例数据:

Python

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0, 2*np.pi, 100)

y1 = np.sin(x)

y2 = np.cos(x)

接下来,我们使用subplot()函数在一个图中创建两个子图,并在每个子图上绘制不同的图形:

Python

plt.subplot(2, 1, 1)

plt.plot(x, y1)

plt.title('Sin')

plt.subplot(2, 1, 2)

plt.plot(x, y2)

plt.title('Cos')

plt.show()

上述代码中,我们使用subplot(2, 1, 1)创建了一个2x1的网格中的第一个子图,并在其上绘制了sin函数的图像。然后,我们使用subplot(2, 1, 2)创建了网格中的第二个子图,并在其上绘制了cos函数的图像。最后,我们调用show()函数显示图形。

接下来,我们使用subplots()函数创建子图数组,并在每个子图上绘制不同的图形:

Python

fig, axs = plt.subplots(2, 1)

axs[0].plot(x, y1)

axs[0].set_title('Sin')

axs[1].plot(x, y2)

axs[1].set_title('Cos')

plt.show()

在上述代码中,我们使用subplots(2, 1)创建了一个包含两个子图对象的数组axs。然后,我们通过索引访问每个子图对象,并在其上绘制了相应的图形。最后,我们调用show()函数显示图形。

通过上述案例,我们可以看出subplot()函数和subplots()函数都可以用于创建多个子图。但是,subplot()函数更加灵活,可以在一个图中创建不同位置的子图,而subplots()函数返回的是一个包含所有子图对象的数组,需要通过索引访问每个子图对象。根据具体需求,我们可以选择合适的函数来创建多个子图,并在其上绘制不同的图形。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号