import numpy as np
import matplotlib.pyplot as plt
# 生成一些示例数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = x**2
y4 = np.exp(x)
# 创建一个包含4个子图的图,2x2的布局
fig, axes = plt.subplots(nrows=2, ncols=2, figsize=(10, 8))
# 第一个子图
axes[0, 0].plot(x, y1, color='blue', label='sin(x)')
axes[0, 0].set_xlabel('x')
axes[0, 0].set_ylabel('y1', color='blue')
axes[0, 0].tick_params(axis='y', labelcolor='blue')
# 创建第一个子图的第二个y轴
ax2_0 = axes[0, 0].twinx()
ax2_0.plot(x, y3, color='green', label='x^2')
ax2_0.set_ylabel('y3', color='green')
ax2_0.tick_params(axis='y', labelcolor='green')
# 第二个子图
axes[0, 1].plot(x, y2, color='red', label='cos(x)')
axes[0, 1].set_xlabel('x')
axes[0, 1].set_ylabel('y2', color='red')
axes[0, 1].tick_params(axis='y', labelcolor='red')
# 创建第二个子图的第二个y轴
ax2_1 = axes[0, 1].twinx()
ax2_1.plot(x, y4, color='purple', label='exp(x)')
ax2_1.set_ylabel('y4', color='purple')
ax2_1.tick_params(axis='y', labelcolor='purple')
# 第三个子图
axes[1, 0].plot(x, y1 + y2, color='orange', label='sin(x) + cos(x)')
axes[1, 0].set_xlabel('x')
axes[1, 0].set_ylabel('y1 + y2', color='orange')
axes[1, 0].tick_params(axis='y', labelcolor='orange')
# 创建第三个子图的第二个y轴
ax2_2 = axes[1, 0].twinx()
ax2_2.plot(x, y3 + y4, color='brown', label='x^2 + exp(x)')
ax2_2.set_ylabel('y3 + y4', color='brown')
ax2_2.tick_params(axis='y', labelcolor='brown')
# 第四个子图
axes[1, 1].plot(x, y1 * y2, color='gray', label='sin(x) * cos(x)')
axes[1, 1].set_xlabel('x')
axes[1, 1].set_ylabel('y1 * y2', color='gray')
axes[1, 1].tick_params(axis='y', labelcolor='gray')
# 创建第四个子图的第二个y轴
ax2_3 = axes[1, 1].twinx()
ax2_3.plot(x, y3 * y4, color='cyan', label='x^2 * exp(x)')
ax2_3.set_ylabel('y3 * y4', color='cyan')
ax2_3.tick_params(axis='y', labelcolor='cyan')
# 调整布局
plt.tight_layout()
# 显示图形
plt.show()