Matplotlib库学习之figure.subplots函数
一、简介
pyplot.add_subplot
是 Matplotlib 的 pyplot
模块中的一个方法,用于在当前图形(figure)中添加坐标轴(axes)。这个方法非常灵活,允许用户在一个图形窗口中创建多个子图,并且可以指定子图的排列方式和大小。
二、语法和参数
pyplot.add_subplot
方法的基本语法如下:
figure.add_subplot(numRows, numCols, plotNumber, **kwargs)
numRows
:子图的行数。numCols
:子图的列数。plotNumber
:当前子图的编号,从1开始计数。**kwargs
:额外的关键字参数,如调整子图间距的subplotpars
。
三、实例
3.1 添加单个子图
import matplotlib.pyplot as plt
# 创建一个图形,并添加一个子图(1x1 网格的第一个)
figure=plt.figure()
ax = figure.add_subplot(1, 1, 1)
ax.plot([1, 2, 3], [4, 5, 6])
plt.show()
输出:一个包含一条直线的窗口。
3.2 添加多个子图
import matplotlib.pyplot as plt
# 创建一个图形
figure = plt.figure()
# 创建一个2x2网格的子图
axe1 = figure.add_subplot(2, 2, 1) # 第一个子图
axe1.plot([1, 2, 3], [4, 5, 6])
axe2 = figure.add_subplot(2, 2, 2) # 第二个子图
axe2.plot([1, 3, 5], [9, 7, 5])
axe3 = figure.add_subplot(2, 2, 3) # 第三个子图
axe3.plot([2, 3, 4], [6, 5, 4])
axe4 = figure.add_subplot(2, 2, 4) # 第四个子图
axe4.plot([3, 4, 5], [2, 4, 6])
# 显示图形
plt.show()
输出:一个2x2网格的窗口,每个子图包含不同的线条。
3.3 使用subplots参数调整子图布局
import matplotlib.pyplot as plt
# 创建一个图形,并添加一个子图,同时调整子图间距
fig, ax = plt.subplots(1, 2, figsize=(10, 5), subplot_kw={'projection': '3d'})
ax[0].plot([1, 2, 3], [4, 5, 6])
ax[1].plot([2, 3, 4], [5, 6, 7])
plt.show()
输出:一个1x2网格的窗口,每个子图包含不同的线条,且子图之间间距经过调整。
四、注意事项
add_subplot
方法返回一个坐标轴对象,可以用于绘制图形和设置坐标轴属性。numRows
、numCols
和plotNumber
共同决定了子图在图形中的位置。- 如果
plotNumber
大于numRows
和numCols
的乘积,将会引发错误。 - 使用
subplot_kw
参数可以传递额外的关键字参数给子图,例如设置三维坐标轴。 plt.subplots
是add_subplot
的一个便利版本,它可以自动创建图形和坐标轴对象,通常用于创建多个子图。- 在使用
add_subplot
时,应确保numRows
、numCols
和plotNumber
的值能够正确反映所需的子图布局。