Автоматический выбор диапазона PlotWidget без заполнения (pyqtgraph)

Я искал полдня для этого без везения. У меня есть PlotWidget, который я хочу настроить автоматически. Тем не менее, если это так, у него есть это «заполнение» (другими словами, диапазон немного больше фактического диапазона). Знаете ли вы способ избежать этого заполнения при сохранении автоматического выбора диапазона.


person Pagirnis    schedule 05.08.2016    source источник
comment
Пожалуйста, покажите какой-нибудь код и объясните, что вы подразумеваете под автоматическим выбором диапазона.   -  person Julian    schedule 05.08.2016


Ответы (3)


Метод autoRange на самом деле имеет параметр заполнения. По умолчанию это None, что означает, что отступ находится между 0,02 и 0,1 в зависимости от размера ViewBox. См. документацию здесь.

Установив padding=0, вы не получите отступы.

person titusjan    schedule 06.08.2016

Автоматический выбор диапазона pyqtgraph требует ненулевого заполнения. Вы можете увидеть это в исходном коде для updateAutoRange() по адресу http://www.pyqtgraph.org/documentation/_modules/pyqtgraph/graphicsItems/ViewBox/ViewBox.html#ViewBox.autoRange

У меня была та же цель без заполнения, и я добавил свой собственный код автоматического выбора диапазона. Он регулирует максимум оси 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)
person Baron    schedule 19.04.2017

Для себя будущего.

я использовал

pg.ViewBox.suggestPadding = lambda *_: 0.0

чтобы навсегда отключить заполнение, когда что-то рисуется.

Однако для setRange и родственников из PlotWidget и GraphicsView по-прежнему требуется параметр padding=0.0, поскольку они не учитывают заполнение ViewBox.

person StSav012    schedule 02.01.2021