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

PyQtGraph子图Y轴起始线对齐问题求助

PyQtGraph子图Y轴起始线对齐解决方案

核心思路

问题根源是不同子图的Y轴标签/数值长度不同,导致轴占用宽度不一致。只要强制所有子图的Y轴区域宽度统一就能解决对齐问题,下面是几种实用方法:


方法1:固定Y轴宽度

直接给每个子图的左侧Y轴设置固定宽度,确保所有轴占用空间一致:

import pyqtgraph as pg
from PyQt5.QtWidgets import QApplication

app = QApplication([])
win = pg.GraphicsLayoutWidget()

# 创建三个子图
p1 = win.addPlot(title="子图1")
p2 = win.addPlot(title="子图2")
p3 = win.addPlot(title="子图3")

# 设定统一的Y轴宽度,根据最长轴标签调整数值
fixed_y_axis_width = 80
for plot in [p1, p2, p3]:
    plot.getAxis('left').setWidth(fixed_y_axis_width)

# 测试数据
p1.plot([1,2,3], [100, 200, 300])
p2.plot([1,2,3], [1, 2, 3])
p3.plot([1,2,3], [1000, 2000, 3000])

win.show()
app.exec_()

方法2:统一子图边距

通过设置子图的内容边距,强制左侧预留足够空间,适配最长的轴标签:

# 在创建子图后添加这段代码
for plot in [p1, p2, p3]:
    # 左、上、右、下边距,左边距设为能容纳最长轴标签的数值
    plot.setContentsMargins(80, 20, 20, 20)

方法3:共享X轴(适用于X轴范围一致的场景)

如果子图的X轴范围相同,用setXLink共享X轴,PyQtGraph会自动对齐子图的起始线:

p2.setXLink(p1)
p3.setXLink(p1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:12:08