Python中使用subplots绘画子图

219 阅读1分钟
知识储备

需要用到的库: numpy, matplotlib

  • numpy 中:

np.linespace(start, end, sum):根据起止数据等间距地生成数组。例如,np.linespace(1, 50, 100) 这里是 1~50, 生成100个数据。

  • matplotlib 中:

subplots 的使用:
fig, axes = plt.subplots(rows, cols, figsize = (14, 12))
fig 代表绘图窗口(figure),axes 代表这个绘图窗口上的坐标系(axes)。
rows 是子图的行数,cols 是子图的列数。
figsize 可以来设置子图的宽度和高度。


例,创建四个子图,四个图的函数分别是y = sin(x),y = cos(x), y = sin(cos(x)), y = cos(sin(x))。
import math
import numpy as np
import matplotlib.pyplot as plt
#正常显示画图时出现的中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

rows, cols = 2, 2
fig, axes = plt.subplots(rows, cols, figsize = (14, 12))
x = np.linspace(-2*math.pi, 2*math.pi, 100)
y = np.sin(x)
#设置子图的横纵坐标轴名称和子图的名称。
axes[0, 0].plot(x, y)
axes[0, 0].set_ylabel('y')
axes[0, 0].set_xlabel('x')
axes[0, 0].set_title('y = sin(x)')

y = np.cos(x)
axes[0, 1].plot(x, y)
axes[0, 1].set_ylabel('y')
axes[0, 1].set_xlabel('x')
axes[0, 1].set_title('y = cos(x)')

y = np.sin(np.cos(x))
axes[1, 0].plot(x, y)
axes[1, 0].set_ylabel('y')
axes[1, 0].set_xlabel('x')
axes[1, 0].set_title('y = sin(cos(x))')

y = np.cos(np.sin(x))
axes[1, 1].plot(x, y)
axes[1, 1].set_ylabel('y')
axes[1, 1].set_xlabel('x')
axes[1, 1].set_title('y = cos(sin(x))')

plt.show()

结果如下:

在这里插入图片描述