下面是Python Matplotlib通过plt.subplots创建子绘图的完整攻略。
1. Matplotlib简介
Matplotlib是一个Python数据可视化库,用于创建图形和图形界面。Matplotlib提供了大量的绘图工具和选项,可以创建各种类型的图形,包括折线图、散点图、直方图、条形图、饼图等等。
2. plt.subplots()函数
plt.subplots()函数是用于创建子绘图的函数,它根据指定的行数和列数创建一个包含多个子绘图的图形。子绘图可以是单一轴或共享一个轴。
下面是plt.subplots()函数的语法:
fig, ax = plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)
参数说明:
- nrows: 子绘图的行数。
- ncols: 子绘图的列数。
- sharex: 是否共享x轴。
- sharey: 是否共享y轴。
- squeeze: 是否压缩子绘图的数组。当只有一行或一列时,可以将squeeze设置为True。
- subplot_kw: 用于设置子绘图的参数字典。
- gridspec_kw: 用于设置子绘图网格的参数字典。
- fig_kw: 用于设置图形的参数字典。
该函数返回一个包含图形对象和轴对象的元组(fig, ax),可以使用其中的轴对象(ax)来绘制子图。
3. 使用plt.subplots创建子绘图的示例
示例一:创建一个包含两个子图的图形,共享x轴
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
t = np.arange(0.0, 5.0, 0.01)
s1 = np.sin(2*np.pi*t)
s2 = np.exp(-t)
# 创建子图
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, sharex=True)
# 绘制第一个子图
ax1.plot(t, s1)
ax1.set_title('Sin Wave')
# 绘制第二个子图
ax2.plot(t, s2)
ax2.set_title('Exponential Decay')
# 添加标签
fig.suptitle('Subplots Example')
plt.xlabel('Time')
plt.ylabel('Amplitude')
# 展示图形
plt.show()
在这个示例中,我们创建了两个子图,共享x轴,然后在每个子图中绘制了不同的函数。通过fig.suptitle()函数可以给整个图形添加一个标题。
示例二:创建一个包含四个子图的图形
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
x = np.linspace(-np.pi, np.pi, 100)
y_sin = np.sin(x)
y_cos = np.cos(x)
y_tan = np.tan(x)
y_cot = 1 / np.tan(x)
# 创建子图
fig, axs = plt.subplots(2, 2)
# 绘制第一个子图
axs[0, 0].plot(x, y_sin)
axs[0, 0].set_title('Sin Wave')
# 绘制第二个子图
axs[0, 1].plot(x, y_cos, 'tab:orange')
axs[0, 1].set_title('Cos Wave')
# 绘制第三个子图
axs[1, 0].plot(x, y_tan, 'tab:green')
axs[1, 0].set_title('Tan Wave')
# 绘制第四个子图
axs[1, 1].plot(x, y_cot, 'tab:red')
axs[1, 1].set_title('Cot Wave')
# 调整子图的间距
fig.tight_layout(pad=3.0)
# 添加标签
fig.suptitle('Subplots Example')
plt.xlabel('x')
plt.ylabel('y')
# 展示图形
plt.show()
在这个示例中,我们创建了一个包含四个子图的图形,分别绘制了sin、cos、tan和cot函数。通过调整fig.tight_layout(pad=3.0)函数的参数来调整子图的间距。我们还为整个图形添加了一个标题。
以上就是使用plt.subplots创建子绘图的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python Matplotlib通过plt.subplots创建子绘图 - Python技术站