diff --git a/examples/PanningPlot.py b/examples/PanningPlot.py new file mode 100644 index 00000000..165240b2 --- /dev/null +++ b/examples/PanningPlot.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +""" +Shows use of PlotWidget to display panning data + +""" +import initExample ## Add path to library (just for examples; you do not need this) + +import pyqtgraph as pg +from pyqtgraph.Qt import QtCore, QtGui +import numpy as np + +win = pg.GraphicsWindow() +win.setWindowTitle('pyqtgraph example: PanningPlot') + +plt = win.addPlot() +#plt.setAutoVisibleOnly(y=True) +curve = plt.plot() + +data = [] +count = 0 +def update(): + global data, curve, count + data.append(np.random.normal(size=10) + np.sin(count * 0.1) * 5) + if len(data) > 100: + data.pop(0) + curve.setData(np.hstack(data)) + count += 1 + +timer = QtCore.QTimer() +timer.timeout.connect(update) +timer.start(50) + +## Start Qt event loop unless running in interactive mode or using pyside. +if __name__ == '__main__': + import sys + if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): + QtGui.QApplication.instance().exec_() diff --git a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py index 8769ed92..3bbb9fe8 100644 --- a/pyqtgraph/graphicsItems/ViewBox/ViewBox.py +++ b/pyqtgraph/graphicsItems/ViewBox/ViewBox.py @@ -950,7 +950,8 @@ class ViewBox(GraphicsWidget): dif = dif * -1 ## Ignore axes if mouse is disabled - mask = np.array(self.state['mouseEnabled'], dtype=np.float) + mouseEnabled = np.array(self.state['mouseEnabled'], dtype=np.float) + mask = mouseEnabled.copy() if axis is not None: mask[1-axis] = 0.0 @@ -990,8 +991,8 @@ class ViewBox(GraphicsWidget): tr = self.childGroup.transform() tr = fn.invertQTransform(tr) - x = s[0] if mask[0] == 1 else None - y = s[1] if mask[1] == 1 else None + x = s[0] if mouseEnabled[0] == 1 else None + y = s[1] if mouseEnabled[1] == 1 else None center = Point(tr.map(ev.buttonDownPos(QtCore.Qt.RightButton))) self.scaleBy(x=x, y=y, center=center)