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

如何使用matplotlib将双Y轴指定刻度对齐至同一水平位置

双Y轴指定刻度对齐实现方案

完全可以通过matplotlib实现该需求,核心逻辑是将两个Y轴的数值映射比例进行绑定,保证y1轴刻度6和y2轴刻度30在轴上的相对位置完全一致。你提供的场景中两个目标对齐值刚好是5倍关系,直接按比例设置两个轴的上下限即可实现需求,可直接运行以下代码:

import matplotlib.pyplot as plt

# 测试数据,注意x轴元素为字符串需加引号
list_y1 = [
 7.31, 7.30,7.29, 7.29, 7.44, 8.05, 7.46, 7.79, 8.35, 8.95, 
 8.95, 8.37, 7.51, 8.34, 8.39, 8.41, 8.46, 8.69, 8.52, 8.51, 
 8.46, 8.97, 9.35, 9.32, 9.24, 9.46, 9.22, 9.16, 9.08, 9.00, 
 8.82, 8.57, 8.66, 8.79, 8.47, 8.58, 8.62, 8.66, 9.19, 9.20, 
 9.13, 9.43 ]
list_y2 = [ 
 30.37, 30.51, 30.62, 30.52, 31.31, 33.82, 31.41, 32.78, 35.29, 37.85, 
 37.85, 35.36, 31.81, 35.35, 35.56, 35.61, 35.94, 36.36, 36.10, 35.81, 
 35.35, 37.14, 38.49, 38.34, 38.04, 38.90, 37.84, 37.58, 37.25, 36.90, 
 36.17, 35.12, 35.53, 36.06, 34.73, 35.15, 35.30, 34.64, 36.76, 36.81, 
 36.54, 37.71 ]
list_x = [
 "100Q1", "100Q2", "100Q3", "100Q4", "101Q1","101Q2", "101Q3", "101Q4", "102Q1", "102Q2",
 "102Q3", "102Q4", "103Q1", "103Q2", "103Q3","103Q4", "104Q1", "104Q2", "104Q3", "104Q4",
 "105Q1", "105Q2", "105Q3", "105Q4", "106Q1","106Q2", "106Q3", "106Q4", "107Q1", "107Q2",
 "107Q3", "107Q4", "108Q1", "108Q2", "108Q3","108Q4", "109Q1", "109Q2", "109Q3", "109Q4",
 "110Q1", "110Q2" ]

# 创建画布和第一个Y轴
fig, ax1 = plt.subplots(figsize=(14,6))
# 绘制y1曲线
ax1.plot(list_x, list_y1, color='#1f77b4', label='Y1数据')
ax1.set_xlabel('季度')
ax1.set_ylabel('Y1数值', color='#1f77b4')
ax1.tick_params(axis='y', labelcolor='#1f77b4')
# 核心:设置y1轴上下限,下限为需要对齐的刻度值6
ax1.set_ylim(bottom=6, top=10)
# 设置x轴刻度旋转,避免重叠
plt.xticks(rotation=45)

# 创建第二个Y轴
ax2 = ax1.twinx()
# 绘制y2曲线
ax2.plot(list_x, list_y2, color='#ff7f0e', label='Y2数据')
ax2.set_ylabel('Y2数值', color='#ff7f0e')
ax2.tick_params(axis='y', labelcolor='#ff7f0e')
# 核心:按1:5的比例设置y2轴上下限,下限为需要对齐的刻度值30,上限对应y1的10即为50
ax2.set_ylim(bottom=30, top=50)

# 添加图例
fig.legend(loc="upper right", bbox_to_anchor=(1,1), bbox_transform=ax1.transAxes)
plt.tight_layout()
plt.show()

运行上述代码后,y1轴的6刻度与y2轴的30刻度会完全对齐到同一水平高度,你也可以根据数据展示需要调整两个轴的上限数值,只要保证上下限的差值比例为1:5且下限分别为6、30,就能维持对齐效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:27:01