I would like to know how I can set the x and y axis limits that are displayed for a pyqtgraph.GraphicsWindow.addPlot object. I need to display a lot of data inside a loop (hence using pyqtgraph) but I would rather preallocate my axes as opposed to allowing autorange to potentially enhance speed. As an example,
from pyqtgraph.Qt import QtGui, QtCoreimport numpy as npimport pyqtgraph as pgapp = 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 problem lies in the line p1.setXRange((5,20),padding=0). This results in the error: TypeError: setXRange() takes at least 3 arguments (3 given)
I think this should be a very simple question, just setting the axis ranges before plotting.