class pyqtgraph.PlotItem[source]

Bases: GraphicsWidget

Plot graphics item that can be added to any graphics scene. Implements axes, titles, and interactive viewbox. PlotItem also provides some basic analysis functionality that may be accessed from the context menu. Use plot() to create a new PlotDataItem and add it to the view. Use addItem() to add any QGraphicsItem to the view.

This class wraps several methods from its internal ViewBox: setXRange, setYRange, setRange, autoRange, setXLink, setYLink, setAutoPan, setAutoVisible, setLimits, viewRect, viewRange, setMouseEnabled, enableAutoRange, disableAutoRange, setAspectLocked, invertY, invertX, register, unregister

The ViewBox itself can be accessed by calling getViewBox()

sigYRangeChanged wrapped from ViewBox
sigXRangeChanged wrapped from ViewBox
sigRangeChanged wrapped from ViewBox
__init__(parent=None, name=None, labels=None, title=None, viewBox=None, axisItems=None, enableMenu=True, **kargs)[source]

Create a new PlotItem. All arguments are optional. Any extra keyword arguments are passed to PlotItem.plot().

title Title to display at the top of the item. Html is allowed.

A dictionary specifying the axis labels to display:

{'left': (args), 'bottom': (args), ...}

The name of each axis and the corresponding arguments are passed to PlotItem.setLabel() Optionally, PlotItem my also be initialized with the keyword arguments left, right, top, or bottom to achieve the same effect.

name Registers a name for this view so that others may link to it
viewBox If specified, the PlotItem will be constructed with this as its ViewBox.
axisItems Optional dictionary instructing the PlotItem to use pre-constructed items for its axes. The dict keys must be axis names (‘left’, ‘bottom’, ‘right’, ‘top’) and the values must be instances of AxisItem (or at least compatible with AxisItem).
addItem(item, *args, **kargs)[source]

Add a graphics item to the view box. If the item has plot data (PlotDataItem, PlotCurveItem, ScatterPlotItem), it may be included in analysis performed by the PlotItem.

addLegend(size=None, offset=(30, 30))[source]

Create a new LegendItem and anchor it over the internal ViewBox. Plots will be automatically displayed in the legend if they are created with the ‘name’ argument.

If a LegendItem has already been created using this method, that item will be returned rather than creating a new one.

addLine(x=None, y=None, z=None, **kwds)[source]

Create an InfiniteLine and add to the plot.

If x is specified, the line will be vertical. If y is specified, the line will be horizontal. All extra keyword arguments are passed to InfiniteLine.__init__(). Returns the item created.


Remove all items from the ViewBox.


Enable auto-scaling. The plot will continuously scale to fit the boundaries of its data.


Return the specified AxisItem. name should be ‘left’, ‘bottom’, ‘top’, or ‘right’.


Return the ViewBox contained within.


Hide one of the PlotItem’s axes. (‘left’, ‘bottom’, ‘right’, or ‘top’)


Causes auto-scale button (‘A’ in lower-left corner) to be hidden for this PlotItem


Return a list of all data items (PlotDataItem, PlotCurveItem, ScatterPlotItem, etc) contained in this PlotItem.

plot(*args, **kargs)[source]

Add and return a new plot. See PlotDataItem.__init__ for data arguments

Extra allowed arguments are:
clear - clear all plots before displaying new data params - meta-parameters to associate with this data

Remove an item from the internal ViewBox.


Set the default clip-to-view mode for all PlotDataItems managed by this plot. If clip is True, then PlotDataItems will attempt to draw only points within the visible range of the ViewBox.

setDownsampling(ds=None, auto=None, mode=None)[source]

Change the default downsampling mode for all PlotDataItems managed by this plot.

ds (int) Reduce visible plot samples by this factor, or (bool) To enable/disable downsampling without changing the value.
auto (bool) If True, automatically pick ds based on visible range
mode ‘subsample’: Downsample by taking the first of N samples. This method is fastest and least accurate. ‘mean’: Downsample by taking the mean of N samples. ‘peak’: Downsample by drawing a saw wave that follows the min and max of the original data. This method produces the best visual representation of the data but is slower.
setLabel(axis, text=None, units=None, unitPrefix=None, **args)[source]

Set the label for an axis. Basic HTML formatting is allowed.

axis must be one of ‘left’, ‘bottom’, ‘right’, or ‘top’
text text to display along the axis. HTML allowed.
units units to display after the title. If units are given, then an SI prefix will be automatically appended and the axis values will be scaled accordingly. (ie, use ‘V’ instead of ‘mV’; ‘m’ will be added automatically)

Convenience function allowing multiple labels and/or title to be set in one call. Keyword arguments can be ‘title’, ‘left’, ‘bottom’, ‘right’, or ‘top’. Values may be strings or a tuple of arguments to pass to setLabel.

setLogMode(x=None, y=None)[source]

Set log scaling for x and/or y axes. This informs PlotDataItems to transform logarithmically and switches the axes to use log ticking.

Note that no other items in the scene will be affected by this; there is (currently) no generic way to redisplay a GraphicsItem with log coordinates.

setMenuEnabled(enableMenu=True, enableViewBoxMenu='same')[source]

Enable or disable the context menu for this PlotItem. By default, the ViewBox’s context menu will also be affected. (use enableViewBoxMenu=None to leave the ViewBox unchanged)

setTitle(title=None, **args)[source]

Set the title of the plot. Basic HTML formatting is allowed. If title is None, then the title will be hidden.

showAxis(axis, show=True)[source]

Show or hide one of the plot’s axes. axis must be one of ‘left’, ‘bottom’, ‘right’, or ‘top’


Causes auto-scale button (‘A’ in lower-left corner) to be visible for this PlotItem

showGrid(x=None, y=None, alpha=None)[source]

Show or hide the grid for either axis.

x (bool) Whether to show the X grid
y (bool) Whether to show the Y grid
alpha (0.0-1.0) Opacity of the grid
showLabel(axis, show=True)[source]

Show or hide one of the plot’s axis labels (the axis itself will be unaffected). axis must be one of ‘left’, ‘bottom’, ‘right’, or ‘top’


Return the screen geometry of the viewbox