python画图多子图多轴画图示例

 

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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值