Некорректное отображение графика в оконном режиме
Есть график, построенный с помощью PlotWidget. На график были добавлена возможность отслеживания мышки и отображение координат:
Однако, если приложение используется в малом окне (не на весь экран), то график начинает уменьшаться на несколько порядков.
Код графика следующий:
self.plotx = range(181)
self.ploty = [number**2 for number in self.plotx]
styles = {'color': 'r', 'font-size': '12px'}
pen = QtGui.QPen(QtCore.Qt.black, 0.05, QtCore.Qt.SolidLine)
self.ui.graphicsView.scene().sigMouseMoved.connect(self.mouseMoved)
self.vLine = InfiniteLine(angle=90, movable=False)
self.hLine = InfiniteLine(angle=0, movable=False)
self.cursorlabel = TextItem(anchor=(-1, 10))
#pen2 = QtGui.QPen(QtCore.Qt.red, 0.1, QtCore.Qt.SolidLine)
self.ui.graphicsView.setLabel('left', 'Intencivity (Angstrom)', **styles)
self.ui.graphicsView.setLabel('bottom', 'Angle (2*Theta)', **styles)
self.ui.graphicsView.addItem(self.vLine, ignoreBounds=True)
self.ui.graphicsView.addItem(self.hLine, ignoreBounds=True)
self.ui.graphicsView.addItem(self.cursorlabel)
self.ui.graphicsView.plot(x, arr, pen=pen)
def mouseMoved(self, evt):
pos = evt
if self.ui.graphicsView.sceneBoundingRect().contains(pos):
mousePoint = self.ui.graphicsView.plotItem.vb.mapSceneToView(pos)
mx = np.array([abs(i - mousePoint.x()) for i in self.plotx])
index = mx.argmin()
index = int(mousePoint.x())
if index > 0 and index < len(self.plotx):
self.cursorlabel.setHtml(
"<span style='font-size: 12pt'>Angle (2*Theta)={:0.1f}, \
<span style='color: black'>Intensivity (Angstrom)={:0.1f}
</span>".format(
mousePoint.x(), mousePoint.y()))
self.vLine.setPos(mousePoint.x())
self.hLine.setPos(mousePoint.y())
Источник: Stack Overflow на русском