PyQtGraph绘图Y轴存在0-5间隙问题求助
解决PyQtGraph绘图Y轴存在0-5间隙的问题
你的问题是因为PyQtGraph默认的坐标轴自动范围策略会包含0值,而你的数据Y值从5开始,导致Y轴出现0到5的空白间隙。以下是几种可行的解决方案:
方案1:手动指定Y轴范围
直接根据数据的最小、最大值设置Y轴范围,精准控制显示区间:
import sys from PyQt5.QtWidgets import QApplication import pyqtgraph as pg app = QApplication(sys.argv) plot_window = pg.plot(x=[0,1,2,4], y=[5,6,7,8]) y_data = [5,6,7,8] # 设置Y轴范围为数据的最小到最大值,可根据需求调整上下限留白 plot_window.setYRange(min(y_data), max(y_data)) status = app.exec_() sys.exit(status)
方案2:开启严格的自动范围适配
让Y轴自动适配数据的实际范围,不再强制包含0:
import sys from PyQt5.QtWidgets import QApplication import pyqtgraph as pg app = QApplication(sys.argv) plot_window = pg.plot(x=[0,1,2,4], y=[5,6,7,8]) # 获取左侧Y轴,padding参数控制留白比例(0为无留白,0.05为5%留白) plot_window.getAxis('left').autoRange(padding=0.05) status = app.exec_() sys.exit(status)
方案3:初始化时配置坐标轴可见性
创建绘图控件时就指定Y轴仅显示数据覆盖的范围:
import sys from PyQt5.QtWidgets import QApplication import pyqtgraph as pg app = QApplication(sys.argv) plot_window = pg.PlotWidget() plot_window.plot(x=[0,1,2,4], y=[5,6,7,8]) # 设置Y轴自动可见范围仅包含数据区间 plot_window.getAxis('left').setAutoVisible(y=True) status = app.exec_() sys.exit(status)
内容的提问来源于stack exchange,提问作者Mani
相关产品推荐
相关产品推荐

