一个图(figure)中可以包含多个子图(subplot)。

subplot

可以使用subplot()添加子图。

示例

创建2个子图,水平排列。

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 创建一个新的子图,网格1x2,序号为1,第一个数字是行数,第二个数字是列数,表示子图排列方式,第三个数字是子图的序号
plt.subplot(1, 2, 1)
plt.plot([1,2,3,4], [1,4,9,16], "go") # go 表示green circle,绿色圆点
# 设置子图标题
plt.title("1st subplot")

# 创建一个新的子图,网格1x2,序号为2
plt.subplot(1, 2, 2)
plt.plot([1,2,3,4], [1,4,9,16], "r^") # r^ 表示 红色(red)三角
# 设置子图标题
plt.title("2nd subplot")

# 设置标题
plt.suptitle("2 subplots")

# 显示
plt.show()

输出

如果希望子图垂直排列,可以给subplot()传递参数(2,1,1)和(2,1,2)。

示例

创建2个子图,垂直排列。

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 创建一个新的子图,网格2x1,序号为1,第一个数字是行数,第二个数字是列数,表示子图排列方式,第三个数字是子图的序号
plt.subplot(2, 1, 1)
plt.plot([1,2,3,4], [1,4,9,16], "go") # go 表示green circle,绿色圆点
# 设置子图标题
plt.title("1st subplot")

# 创建一个新的子图,网格2x1,序号为2
plt.subplot(2, 1, 2)
plt.plot([1,2,3,4], [1,4,9,16], "r^") # r^ 表示 红色(red)三角
# 设置子图标题
plt.title("2nd subplot")

# 设置标题
plt.suptitle("2 subplots")

# 显示
plt.show()

输出

subplots

subplots()函数可以一次添加多个子图,注意函数名后面多了个's'。

示例

subplots()创建多个子图。

# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt

# 准备数据
x = np.arange(1,5)
y = x**3

# 创建多个子图
fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(6,6))

# 绘制图形
ax[0, 1].plot([1,2,3,4], [1,4,9,16], "go") # 绘制第0行第1列的坐标系(子图),go 表示green circle,绿色圆点
ax[0, 1].set_title("green") # 设置子图标题

ax[1, 0].plot([1,2,3,4], [1,4,9,16], "r^") # 绘制第1行第0列的坐标系(子图),r^ 表示 红色(red)三角
ax[1, 0].set_title("red") # 设置子图标题

# 设置标题
plt.suptitle("2 subplots")

# 显示
plt.show()

输出

12-28 19:51