在没有填充的情况下自动调整PlotWidget(pyqtgraph)

时间:2016-08-05 18:12:38

标签: python pyqt pyqtgraph

我正在寻找半天没有运气。我有一个我想自动调整的PlotWidget。然而,如果确实如此,则它具有这种“填充”(换句话说,范围比实际范围稍大)。你知道一种避免这种填充的方法,同时保持自动量程。

3 个答案:

答案 0 :(得分:1)

autoRange方法实际上有一个填充参数。默认情况下,这是None,这意味着填充介于0.02和0.1之间,具体取决于ViewBox的大小。请参阅文档here

通过设置padding=0,您无法填充。

答案 1 :(得分:0)

pyqtgraph自动量程强制非零填充。您可以在http://www.pyqtgraph.org/documentation/_modules/pyqtgraph/graphicsItems/ViewBox/ViewBox.html#ViewBox.autoRange

的updateAutoRange()源代码中看到这一点

我有相同的无填充目标,并添加了我自己的自动测距代码。它根据输入数据的最大值调整Y轴最大值,同时保持零填充。

yMax = max(Y)
existingViewRect = self.ui.myGraph.plotItem.getViewBox().viewRange()
yMaxInView = existingViewRect[1][1]
if (yMax < 80):
    self.ui.myGraph.setYRange(0, 100, padding=0)
elif yMax > yMaxInView:
    self.ui.myGraph.setYRange(0, 2*yMaxInView, padding=0)
elif (yMax < yMaxInView/2):
    self.ui.myGraph.setYRange(0, yMaxInView/2, padding=0)

答案 2 :(得分:0)

为了未来的自己。

我用过

pg.ViewBox.suggestPadding = lambda *_: 0.0

在绘制某些内容时永久禁用填充。

然而,setRange 和来自 PlotWidgetGraphicsView 的亲戚仍然需要 padding=0.0 参数,因为它们不尊重 ViewBox 填充。