Matplotlib 子图
显示多个绘图
使用 subplot()
函数,你可以在一个图形中绘制多个绘图。
示例
绘制 2 个绘图
import matplotlib.pyplot as plt
import numpy as np
# 绘图 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
# 绘图 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.show()
结果
自己尝试 »
subplot() 函数
subplot()
函数接受三个参数来描述图形的布局。
布局按行和列组织,分别由第一个和第二个参数表示。
第三个参数表示当前绘图的索引。
plt.subplot(1, 2, 1)
# 图形有 1 行,2 列,此绘图是第一个绘图。
plt.subplot(1, 2, 2)
# 图形有 1 行,2 列,此绘图是第二个绘图。
所以,如果我们想要一个有 2 行 1 列的图形(意味着两个绘图将显示在彼此之上而不是并排),我们可以这样写语法
示例
绘制 2 个在彼此之上的绘图
import matplotlib.pyplot as plt
import numpy as np
# 绘图 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 1, 1)
plt.plot(x,y)
# 绘图 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 1, 2)
plt.plot(x,y)
plt.show()
结果
自己尝试 »
你可以在一个图形中绘制任意数量的绘图,只需描述行数、列数和绘图的索引即可。
示例
绘制 6 个绘图
import matplotlib.pyplot as plt
import numpy as np
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 1)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 2)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 3)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 4)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(2, 3, 5)
plt.plot(x,y)
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(2, 3, 6)
plt.plot(x,y)
plt.show()
结果
自己尝试 »
标题
你可以使用 title()
函数为每个绘图添加标题。
示例
2 个带标题的绘图
import matplotlib.pyplot as plt
import numpy as np
# 绘图 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
plt.title("销售额")
# 绘图 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("收入")
plt.show()
结果
自己尝试 »
超级标题
你可以使用 suptitle()
函数为整个图形添加标题。
示例
为整个图形添加标题
import matplotlib.pyplot as plt
import numpy as np
# 绘图 1
x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])
plt.subplot(1, 2, 1)
plt.plot(x,y)
plt.title("销售额")
# 绘图 2
x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])
plt.subplot(1, 2, 2)
plt.plot(x,y)
plt.title("收入")
plt.suptitle("我的商店")
plt.show()
结果
自己尝试 »