You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib不同量级数值双折线图叠加独立坐标轴绘制问题

实现方法

核心是调用matplotlib坐标轴对象的twinx()方法,生成共享X轴、独立Y轴的第二个坐标系,分别绑定两组不同量级的数据即可,完整实现代码如下:

import matplotlib.pyplot as plt

data_1 = [1, 10, 30, 4, 50]
data_2 = [1000, 1020, 1050, 1300]

# 创建主坐标系(绑定左侧Y轴)
fig, ax1 = plt.subplots()
# 绘制第一组数据
line1 = ax1.plot(data_1, color='tab:blue', label='data_1')
# 配置左侧Y轴样式
ax1.set_ylabel('data_1 数值', color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')

# 创建共享X轴的第二坐标系(绑定右侧Y轴)
ax2 = ax1.twinx()
# 绘制第二组数据
line2 = ax2.plot(data_2, color='tab:orange', label='data_2')
# 配置右侧Y轴样式
ax2.set_ylabel('data_2 数值', color='tab:orange')
ax2.tick_params(axis='y', labelcolor='tab:orange')

# 合并两个坐标系的图例展示
lines = line1 + line2
labels = [line.get_label() for line in lines]
ax1.legend(lines, labels)

plt.show()

补充说明:

  • 两个Y轴会自动适配对应数据的数值范围,小量级数据不会被压缩
  • 可自行修改color参数调整折线、坐标轴的配色,方便区分两组数据
  • 合并图例的代码可按需删除,不需要合并图例可以直接分别调用ax1.legend()和ax2.legend()

内容的提问来源于stack exchange,提问作者john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 11:54:03