2016-08-05 2 views
0

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

+0

Пожалуйста, покажите код и объясните, что вы подразумеваете под авторингом. – Julian

ответ

0

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

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

0

Автонастройка 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) 
Смежные вопросы