I would like to know how I can set the limits of the x and y axis that are displayed for the pyqtgraph.GraphicsWindow.addPlot object. I need to display a lot of data inside a loop (hence using pyqtgraph), but I would prefer to redirect my axes rather than let autorange potentially increase speed. As an example,
from pyqtgraph.Qt import QtGui, QtCore import numpy as np import pyqtgraph as pg app = QtGui.QApplication([]) win = pg.GraphicsWindow(title="My plotting examples") win.resize(1000,600) win.setWindowTitle('pyqtgraph example: Plotting') p1 = win.addPlot(title="plot1") p2 = win.addPlot(title="plot2") curve1 = p1.plot(pen='y') curve2 = p1.plot(pen='r') curve3 = p2.plot(pen='b') x = np.linspace(0,10,1000) x_current = x[0] p1.setXRange((5,20), padding=0) for i in range(1,len(x)): x_current = np.append(x_current,x[i]) curve1.setData(x_current,np.sin(x_current)) curve2.setData(x_current,np.cos(x_current)) curve3.setData(x_current,np.tan(x_current)) app.processEvents() if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_()
The task lies in the line p1.setXRange((5,20),padding=0) . This results in an error: TypeError: setXRange () takes at least 3 arguments (3 data)
I think this should be a very simple question, just setting the axis ranges before plotting.
source share