Python pyqtgraph how to set x and y axis limits on graph, no autorange

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.

+5
source share
2 answers

As the error message indicates, you did not specify the correct number of arguments to setXRange() . The correct line should look like this:

 p1.setXRange(5, 20, padding=0) 

Documentation here: http://www.pyqtgraph.org/documentation/graphicsItems/viewbox.html#pyqtgraph.ViewBox.setXRange

+7
source

Michael.

The easiest way is to simply specify ranges as list items. Replace p1.setXRange something like this:

 p1.setRange(xRange=[5,20]) 

What is it!

Check out the documentation for this class at: http://www.pyqtgraph.org/documentation/graphicsItems/viewbox.html#pyqtgraph.ViewBox.setRange

+3
source

All Articles