如何在Python中的 Matplotlib 中创建多个子图?
要创建多个绘图,请使用matplotlib.pyplot.subplots方法,该方法返回图形以及 Axes 对象或 Axes 对象数组。 subplots() 方法的nrows、ncols属性决定了子图网格的行数和列数。
默认情况下,它返回一个带有单个绘图的图形。对于每个轴对象,即绘图,我们可以设置标题(通过set_title()设置)、x 标签(通过set_xlabel()设置)和通过set_ylabel()设置的 y 标签)。
让我们看看这是如何工作的
- 当我们通过仅在一个方向上堆叠来调用 subplots() 方法时,它返回一个一维轴对象数组,即子图。
- 我们可以像访问数组元素一样使用索引访问这些轴对象。要创建特定的子图,请在轴的相应索引上调用 matplotlib.pyplot.plot()。参考下图更好理解
示例 1:子图的一维数组
Python3
# importing library
import matplotlib.pyplot as plt
# Some data to display
x = [1, 2, 3]
y = [0, 1, 0]
z = [1, 0, 1]
# Creating 2 subplots
fig, ax = plt.subplots(2)
# Accessing each axes object to plot the data through returned array
ax[0].plot(x, y)
ax[1].plot(x, z)
Python3
# importing library
import matplotlib.pyplot as plt
import numpy as np
# Data for plotting
x = np.arange(0.0, 2.0, 0.01)
y = 1 + np.sin(2 * np.pi * x)
# Creating 6 subplots and unpacking the output array immediately
fig, ((ax1, ax2), (ax3, ax4), (ax5, ax6)) = plt.subplots(3, 2)
ax1.plot(x, y, color="orange")
ax2.plot(x, y, color="green")
ax3.plot(x, y, color="blue")
ax4.plot(x, y, color="magenta")
ax5.plot(x, y, color="black")
ax6.plot(x, y, color="red")
输出 :
示例 2:在两个方向上堆叠会返回坐标区对象的二维数组。
蟒蛇3
# importing library
import matplotlib.pyplot as plt
import numpy as np
# Data for plotting
x = np.arange(0.0, 2.0, 0.01)
y = 1 + np.sin(2 * np.pi * x)
# Creating 6 subplots and unpacking the output array immediately
fig, ((ax1, ax2), (ax3, ax4), (ax5, ax6)) = plt.subplots(3, 2)
ax1.plot(x, y, color="orange")
ax2.plot(x, y, color="green")
ax3.plot(x, y, color="blue")
ax4.plot(x, y, color="magenta")
ax5.plot(x, y, color="black")
ax6.plot(x, y, color="red")
输出 :