知识储备
需要用到的库: 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()
结果如下:
|