当垂直方向两个子图共用一个x轴分用两个y轴,如何通过代码实现
时间: 2024-10-13 18:17:19 浏览: 44
在Matplotlib中,可以使用`twinx()`或`twiny()`函数创建共享x轴但分别拥有独立y轴的两个子图。下面是一个例子,假设我们有两个数据集,一个用于左侧y轴,一个用于右侧y轴,同时共用x轴:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义数据
x = np.linspace(0, 10, 100)
data1 = np.sin(x)
data2 = np.cos(x)
fig, ax1 = plt.subplots() # 主图形,将创建第一个y轴
ax1.plot(x, data1, label='Left Y-axis', color='tab:blue')
ax1.set_ylabel('Left Y-axis', color='tab:blue') # 左侧y轴标签
# 使用twinx()创建共享x轴的第二个y轴
ax2 = ax1.twinx()
ax2.plot(x, data2, label='Right Y-axis', color='tab:red')
ax2.set_ylabel('Right Y-axis', color='tab:red') # 右侧y轴标签
# 显示图例并设置标题
ax1.legend()
title = "Shared X-axis with separate Y-axes"
plt.title(title)
# 配置轴范围
ax1.set_ylim(-1, 1) # 左侧y轴范围
ax2.set_ylim(-1, 1) # 右侧y轴范围
# 显示图形
plt.show()
阅读全文