plt.subplot(221) 怎么设置两个纵坐标
时间: 2025-04-18 09:04:59 浏览: 38
### Matplotlib Subplot 中实现双纵坐标
在 Matplotlib 的 `subplot` 函数中创建子图并为其配置双纵坐标轴可以通过调用额外的 `twinx()` 方法来完成。这允许在同一张图表上绘制两个不同尺度的数据集。
对于具体的 subplot 如 221 (即四宫格布局中的第一个位置),可以按照如下方式操作:
```python
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
# 创建 2*2 布局的第一个子图
ax1 = fig.add_subplot(221)
# 构造一些数据用于展示
time_data = np.arange('2023-08-01', '2023-08-10', dtype='datetime64[D]')
data_series_1 = np.random.rand(len(time_data)) * 100 # 随机生成一组数值作为左轴数据
data_series_2 = np.sin(np.linspace(-np.pi, np.pi, len(time_data))) + 1.5 # 计算另一组适合右轴表示的数据
# 绘制第一条曲线到默认左侧y轴
line1, = ax1.plot(time_data, data_series_1, label="Data Series 1", color="blue")
# 获取共享相同 x 轴的新 y 轴实例
ax2 = ax1.twinx()
# 使用新获取的右侧y轴绘制第二条曲线
line2, = ax2.plot(time_data, data_series_2, label="Data Series 2", color="red", linestyle="--")
# 设置各自的颜色对应关系以便于区分两条线所属哪个Y轴
ax1.set_ylabel('Value of Data Series 1')
ax2.set_ylabel('Value of Data Series 2')
# 添加图例,注意这里需要把两根线条都加入到同一个legend里去
lines = [line1, line2]
labels = [l.get_label() for l in lines]
ax1.legend(lines, labels, loc='best')
plt.show()
```
这段代码展示了如何在一个指定编号为 221 的子图内建立具有独立刻度但共用 X 轴的时间序列图形,并通过调整颜色和样式使两者易于辨认[^1]。
阅读全文
相关推荐


















