📜  如何在Python中的 Matplotlib 中创建多个子图?

📅  最后修改于: 2022-05-13 01:55:17.124000             🧑  作者: Mango

如何在Python中的 Matplotlib 中创建多个子图?

要创建多个绘图,请使用matplotlib.pyplot.subplots方法,该方法返回图形以及 Axes 对象或 Axes 对象数组。 subplots() 方法的nrows、ncols属性决定了子图网格的行数和列数。

默认情况下,它返回一个带有单个绘图的图形。对于每个轴对象,即绘图,我们可以设置标题(通过set_title()设置)、x 标签(通过set_xlabel()设置)和通过set_ylabel()设置的 y 标签)。

让我们看看这是如何工作的

  1. 当我们通过仅在一个方向上堆叠来调用 subplots() 方法时,它返回一个一维轴对象数组,即子图。
  2. 我们可以像访问数组元素一样使用索引访问这些轴对象。要创建特定的子图,请在轴的相应索引上调用 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")


输出 :

subplots_fig1

示例 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")

输出 :

子图_fig2