PlotCanvas#

class PlotCanvas(design: QDesign, parent: QMainWindowPlot = None, logger=None, statusbar_label=None)#

Main Plot canvas widget.

This class extends the FigureCanvas class.

Access with:

canvas = gui.canvas

Parameters:
  • design (QDesign) – The design.

  • parent (QMainWindowPlot) – The main window. Defaults to None.

  • logger (logger) – The logger. Defaults to None.

  • statusbar_label (str) – Statusbar label. Defaults to None.

Attributes

DrawChildren = PySide2.QtWidgets.QWidget.RenderFlag.DrawChildren#
DrawWindowBackground = PySide2.QtWidgets.QWidget.RenderFlag.DrawWindowBackground#
IgnoreMask = PySide2.QtWidgets.QWidget.RenderFlag.IgnoreMask#
PdmDepth = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmDepth#
PdmDevicePixelRatio = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmDevicePixelRatio#
PdmDevicePixelRatioScaled = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmDevicePixelRatioScaled#
PdmDpiX = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmDpiX#
PdmDpiY = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmDpiY#
PdmHeight = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmHeight#
PdmHeightMM = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmHeightMM#
PdmNumColors = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmNumColors#
PdmPhysicalDpiX = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmPhysicalDpiX#
PdmPhysicalDpiY = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmPhysicalDpiY#
PdmWidth = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmWidth#
PdmWidthMM = PySide2.QtGui.QPaintDevice.PaintDeviceMetric.PdmWidthMM#
button_pick_id#
buttond = {PySide2.QtCore.Qt.MouseButton.LeftButton: MouseButton.LEFT, PySide2.QtCore.Qt.MouseButton.RightButton: MouseButton.RIGHT, PySide2.QtCore.Qt.MouseButton.MiddleButton: MouseButton.MIDDLE, PySide2.QtCore.Qt.MouseButton.XButton1: MouseButton.BACK, PySide2.QtCore.Qt.MouseButton.XButton2: MouseButton.FORWARD}#
callbacks#
customContextMenuRequested#
destroyed#
device_pixel_ratio#

The ratio of physical to logical pixels used for the canvas on screen.

By default, this is 1, meaning physical and logical pixels are the same size. Subclasses that support High DPI screens may set this property to indicate that said ratio is different. All Matplotlib interaction, unless working directly with the canvas, remains in logical pixels.

events = ['resize_event', 'draw_event', 'key_press_event', 'key_release_event', 'button_press_event', 'button_release_event', 'scroll_event', 'motion_notify_event', 'pick_event', 'figure_enter_event', 'figure_leave_event', 'axes_enter_event', 'axes_leave_event', 'close_event']#
filetypes = {'eps': 'Encapsulated Postscript', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': 'Portable Document Format', 'pgf': 'PGF code for LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Raw RGBA bitmap', 'rgba': 'Raw RGBA bitmap', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format', 'webp': 'WebP Image Format'}#
fixed_dpi = None#
objectNameChanged#
painters#
required_interactive_framework = 'qt'#
scroll_pick_id#
staticMetaObject = <PySide2.QtCore.QMetaObject object>#
supports_blit = True#
windowIconChanged#
windowIconTextChanged#
windowTitleChanged#

Methods

acceptDrops(self) bool#
accessibleDescription(self) str#
accessibleName(self) str#
actionEvent(self, event: PySide2.QtGui.QActionEvent) None#
actions(self) List[PySide2.QtWidgets.QAction]#
activateWindow(self) None#
addAction(self, action: PySide2.QtWidgets.QAction) None#
addActions(self, actions: Sequence[PySide2.QtWidgets.QAction]) None#
adjustSize(self) None#
autoFillBackground(self) bool#
auto_scale()#

Automaticlaly scale.

backgroundRole(self) PySide2.QtGui.QPalette.ColorRole#
backingStore(self) PySide2.QtGui.QBackingStore#
baseSize(self) PySide2.QtCore.QSize#
blit(bbox=None)#

Blit the canvas in bbox (default entire canvas).

blockSignals(self, b: bool) bool#
buffer_rgba()#

Get the image as a memoryview to the renderer’s buffer.

draw must be called at least once before this function will work and to update the renderer for any subsequent changes to the Figure.

button_press_event(x, y, button, dblclick=False, guiEvent=None)#

[Deprecated] Callback processing for mouse button press events.

Backend derived classes should call this function on any mouse button press. (x, y) are the canvas coords ((0, 0) is lower left). button and key are as defined in MouseEvent.

This method will call all functions connected to the ‘button_press_event’ with a MouseEvent instance.

Notes

Deprecated since version 3.6: Use callbacks.process(‘button_press_event’, MouseEvent(…)) instead.

button_release_event(x, y, button, guiEvent=None)#

[Deprecated] Callback processing for mouse button release events.

Backend derived classes should call this function on any mouse button release.

This method will call all functions connected to the ‘button_release_event’ with a MouseEvent instance.

Parameters:
  • x (float) – The canvas coordinates where 0=left.

  • y (float) – The canvas coordinates where 0=bottom.

  • guiEvent – The native UI event that generated the Matplotlib event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘button_release_event’, MouseEvent(…)) instead.

changeEvent(self, event: PySide2.QtCore.QEvent) None#
childAt(self, p: PySide2.QtCore.QPoint) PySide2.QtWidgets.QWidget#
childAt(self, x: int, y: int) PySide2.QtWidgets.QWidget
childEvent(self, event: PySide2.QtCore.QChildEvent) None#
children(self) List[PySide2.QtCore.QObject]#
childrenRect(self) PySide2.QtCore.QRect#
childrenRegion(self) PySide2.QtGui.QRegion#
clearFocus(self) None#
clearMask(self) None#
clear_annotation()#

Clear the annotations.

Raises:

Exception – Error while clearing the annotations

clear_axis(ax: Axes | None = None)#

Clear an axis or clear all axes.

Parameters:

ax (plt.Axes) – Clear an axis, or if None, then clear all axes. Defaults to None.

close(self) bool#
closeEvent(self, event: PySide2.QtGui.QCloseEvent) None#
close_event(guiEvent=None)#

[Deprecated] Pass a CloseEvent to all functions connected to close_event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘close_event’, CloseEvent(…)) instead.

colorCount(self) int#
static connect(arg__1: PySide2.QtCore.QObject, arg__2: bytes, arg__3: Callable, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) bool#
static connect(self, arg__1: bytes, arg__2: Callable, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) bool
static connect(self, arg__1: bytes, arg__2: PySide2.QtCore.QObject, arg__3: bytes, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) bool
static connect(self, sender: PySide2.QtCore.QObject, signal: bytes, member: bytes, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) PySide2.QtCore.QMetaObject.Connection
static connect(sender: PySide2.QtCore.QObject, signal: PySide2.QtCore.QMetaMethod, receiver: PySide2.QtCore.QObject, method: PySide2.QtCore.QMetaMethod, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) PySide2.QtCore.QMetaObject.Connection
static connect(sender: PySide2.QtCore.QObject, signal: bytes, receiver: PySide2.QtCore.QObject, member: bytes, type: PySide2.QtCore.Qt.ConnectionType = PySide2.QtCore.Qt.ConnectionType.AutoConnection) PySide2.QtCore.QMetaObject.Connection
connectNotify(self, signal: PySide2.QtCore.QMetaMethod) None#
contentsMargins(self) PySide2.QtCore.QMargins#
contentsRect(self) PySide2.QtCore.QRect#
contextMenuEvent(self, event: PySide2.QtGui.QContextMenuEvent) None#
contextMenuPolicy(self) PySide2.QtCore.Qt.ContextMenuPolicy#
copy_from_bbox(bbox)#
create(self, arg__1: int = 0, initializeWindow: bool = True, destroyOldWindow: bool = True) None#
createWinId(self) None#
static createWindowContainer(window: PySide2.QtGui.QWindow, parent: Optional[PySide2.QtWidgets.QWidget] = None, flags: PySide2.QtCore.Qt.WindowFlags = Default(Qt.WindowFlags)) PySide2.QtWidgets.QWidget#
cursor(self) PySide2.QtGui.QCursor#
customEvent(self, event: PySide2.QtCore.QEvent) None#
deleteLater(self) None#
depth(self) int#
destroy(self, destroyWindow: bool = True, destroySubWindows: bool = True) None#
devType(self) int#
devicePixelRatio(self) int#
devicePixelRatioF(self) float#
static devicePixelRatioFScale() float#
static disconnect(arg__1: PySide2.QtCore.QMetaObject.Connection) bool#
static disconnect(arg__1: PySide2.QtCore.QObject, arg__2: bytes, arg__3: Callable) bool
static disconnect(self, arg__1: bytes, arg__2: Callable) bool
static disconnect(self, receiver: PySide2.QtCore.QObject, member: Optional[bytes] = None) bool
static disconnect(self, signal: bytes, receiver: PySide2.QtCore.QObject, member: bytes) bool
static disconnect(sender: PySide2.QtCore.QObject, signal: PySide2.QtCore.QMetaMethod, receiver: PySide2.QtCore.QObject, member: PySide2.QtCore.QMetaMethod) bool
static disconnect(sender: PySide2.QtCore.QObject, signal: bytes, receiver: PySide2.QtCore.QObject, member: bytes) bool
disconnectNotify(self, signal: PySide2.QtCore.QMetaMethod) None#
dragEnterEvent(self, event: PySide2.QtGui.QDragEnterEvent) None#
dragLeaveEvent(self, event: PySide2.QtGui.QDragLeaveEvent) None#
dragMoveEvent(self, event: PySide2.QtGui.QDragMoveEvent) None#
draw()#

Render the figure, and queue a request for a Qt draw.

drawRectangle(rect)#
draw_event(renderer)#

[Deprecated] Pass a DrawEvent to all functions connected to draw_event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘draw_event’, DrawEvent(…)) instead.

draw_idle()#

Queue redraw of the Agg buffer and request Qt paintEvent.

dropEvent(self, event: PySide2.QtGui.QDropEvent) None#
dumpObjectInfo(self) None#
dumpObjectTree(self) None#
dynamicPropertyNames(self) List[PySide2.QtCore.QByteArray]#
effectiveWinId(self) int#
emit(self, arg__1: bytes, *args: None) bool#
ensurePolished(self) None#
enterEvent(self, event: PySide2.QtCore.QEvent) None#
enter_notify_event(guiEvent=None, *, xy)#

[Deprecated] Callback processing for the mouse cursor entering the canvas.

Backend derived classes should call this function when entering canvas.

Parameters:
  • guiEvent – The native UI event that generated the Matplotlib event.

  • xy ((float, float)) – The coordinate location of the pointer when the canvas is entered.

Notes

Deprecated since version 3.6: Use callbacks.process(‘enter_notify_event’, LocationEvent(…)) instead.

event(self, event: PySide2.QtCore.QEvent) bool#
eventFilter(self, watched: PySide2.QtCore.QObject, event: PySide2.QtCore.QEvent) bool#
static find(arg__1: int) PySide2.QtWidgets.QWidget#
findChild(self, arg__1: type, arg__2: str = '') object#
findChildren(self, arg__1: type, arg__2: PySide2.QtCore.QRegExp) Iterable#
findChildren(self, arg__1: type, arg__2: PySide2.QtCore.QRegularExpression) Iterable
findChildren(self, arg__1: type, arg__2: str = '') Iterable
find_component_bounds(components: List[str], zoom: float = 1.2)#

Find bounds of a set of components.

Parameters:
  • components (List[str]) – A list of component names

  • zoom (float) – Fraction to expand the bounding vbox by

Returns:

List of x,y coordinates defining the bounding box

Return type:

List

flush_events()#

Flush the GUI events for the figure.

Interactive backends need to reimplement this method.

focusInEvent(self, event: PySide2.QtGui.QFocusEvent) None#
focusNextChild(self) bool#
focusNextPrevChild(self, next: bool) bool#
focusOutEvent(self, event: PySide2.QtGui.QFocusEvent) None#
focusPolicy(self) PySide2.QtCore.Qt.FocusPolicy#
focusPreviousChild(self) bool#
focusProxy(self) PySide2.QtWidgets.QWidget#
focusWidget(self) PySide2.QtWidgets.QWidget#
font(self) PySide2.QtGui.QFont#
fontInfo(self) PySide2.QtGui.QFontInfo#
fontMetrics(self) PySide2.QtGui.QFontMetrics#
foregroundRole(self) PySide2.QtGui.QPalette.ColorRole#
frameGeometry(self) PySide2.QtCore.QRect#
frameSize(self) PySide2.QtCore.QSize#
geometry(self) PySide2.QtCore.QRect#
getContentsMargins(self) Tuple[int, int, int, int]#
get_axis()#

Gets the current axis.

get_default_filename()#

Return a string, which includes extension, suitable for use as a default filename.

classmethod get_default_filetype()#

Return the default savefig file format as specified in :rc:`savefig.format`.

The returned string does not include a period. This method is overridden in backends that only support a single file type.

get_renderer(cleared=<deprecated parameter>)#
classmethod get_supported_filetypes()#

Return dict of savefig file formats supported by this backend.

classmethod get_supported_filetypes_grouped()#

Return a dict of savefig file formats supported by this backend, where the keys are a file type name, such as ‘Joint Photographic Experts Group’, and the values are a list of filename extensions used for that filetype, such as [‘jpg’, ‘jpeg’].

get_width_height(*, physical=False)#

Return the figure width and height in integral points or pixels.

When the figure is used on High DPI screens (and the backend supports it), the truncation to integers occurs after scaling by the device pixel ratio.

Parameters:

physical (bool, default: False) – Whether to return true physical pixels or logical pixels. Physical pixels may be used by backends that support HiDPI, but still configure the canvas using its actual size.

Returns:

width, height – The size of the figure, in points or pixels, depending on the backend.

Return type:

int

grab(self, rectangle: PySide2.QtCore.QRect = PySide2.QtCore.QRect(0, 0, -1, -1)) PySide2.QtGui.QPixmap#
grabGesture(self, type: PySide2.QtCore.Qt.GestureType, flags: PySide2.QtCore.Qt.GestureFlags = Default(Qt.GestureFlags)) None#
grabKeyboard(self) None#
grabMouse(self) None#
grabMouse(self, arg__1: PySide2.QtGui.QCursor) None
grabShortcut(self, key: PySide2.QtGui.QKeySequence, context: PySide2.QtCore.Qt.ShortcutContext = PySide2.QtCore.Qt.ShortcutContext.WindowShortcut) int#
grab_mouse(ax)#

Set the child ~.axes.Axes which is grabbing the mouse events.

Usually called by the widgets themselves. It is an error to call this if the mouse is already grabbed by another Axes.

graphicsEffect(self) PySide2.QtWidgets.QGraphicsEffect#
graphicsProxyWidget(self) PySide2.QtWidgets.QGraphicsProxyWidget#
hasFocus(self) bool#
hasHeightForWidth(self) bool#
hasMouseTracking(self) bool#
hasTabletTracking(self) bool#
height(self) int#
heightForWidth(self, arg__1: int) int#
heightMM(self) int#
hide(self) None#
hideEvent(self, event: PySide2.QtGui.QHideEvent) None#
highlight_components(component_names: List[str])#

Highlight a list of components.

Parameters:

component_names (List[str]) – A list of component names

inaxes(xy)#

Return the topmost visible ~.axes.Axes containing the point xy.

Parameters:

xy ((float, float)) – (x, y) pixel positions from left/bottom of the canvas.

Returns:

The topmost visible Axes containing the point, or None if there is no Axes at the point.

Return type:

~matplotlib.axes.Axes or None

inherits(self, classname: bytes) bool#
initPainter(self, painter: PySide2.QtGui.QPainter) None#
inputMethodEvent(self, event: PySide2.QtGui.QInputMethodEvent) None#
inputMethodHints(self) PySide2.QtCore.Qt.InputMethodHints#
inputMethodQuery(self, arg__1: PySide2.QtCore.Qt.InputMethodQuery) Any#
insertAction(self, before: PySide2.QtWidgets.QAction, action: PySide2.QtWidgets.QAction) None#
insertActions(self, before: PySide2.QtWidgets.QAction, actions: Sequence[PySide2.QtWidgets.QAction]) None#
installEventFilter(self, filterObj: PySide2.QtCore.QObject) None#
internalWinId(self) int#
isActiveWindow(self) bool#
isAncestorOf(self, child: PySide2.QtWidgets.QWidget) bool#
isEnabled(self) bool#
isEnabledTo(self, arg__1: PySide2.QtWidgets.QWidget) bool#
isEnabledToTLW(self) bool#
isFullScreen(self) bool#
isHidden(self) bool#
isLeftToRight(self) bool#
isMaximized(self) bool#
isMinimized(self) bool#
isModal(self) bool#
isRightToLeft(self) bool#
isSignalConnected(self, signal: PySide2.QtCore.QMetaMethod) bool#
isTopLevel(self) bool#
isVisible(self) bool#
isVisibleTo(self, arg__1: PySide2.QtWidgets.QWidget) bool#
isWidgetType(self) bool#
isWindow(self) bool#
isWindowModified(self) bool#
isWindowType(self) bool#
is_saving()#

Return whether the renderer is in the process of saving to a file, rather than rendering for an on-screen buffer.

keyPressEvent(self, event: PySide2.QtGui.QKeyEvent) None#
keyReleaseEvent(self, event: PySide2.QtGui.QKeyEvent) None#
key_press_event(key, guiEvent=None)#

[Deprecated] Pass a KeyEvent to all functions connected to key_press_event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘key_press_event’, KeyEvent(…)) instead.

key_release_event(key, guiEvent=None)#

[Deprecated] Pass a KeyEvent to all functions connected to key_release_event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘key_release_event’, KeyEvent(…)) instead.

static keyboardGrabber() PySide2.QtWidgets.QWidget#
killTimer(self, id: int) None#
layout(self) PySide2.QtWidgets.QLayout#
layoutDirection(self) PySide2.QtCore.Qt.LayoutDirection#
leaveEvent(self, event: PySide2.QtCore.QEvent) None#
leave_notify_event(guiEvent=None)#

[Deprecated] Callback processing for the mouse cursor leaving the canvas.

Backend derived classes should call this function when leaving canvas.

Parameters:

guiEvent – The native UI event that generated the Matplotlib event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘leave_notify_event’, LocationEvent(…)) instead.

locale(self) PySide2.QtCore.QLocale#
logicalDpiX(self) int#
logicalDpiY(self) int#
lower(self) None#
mapFrom(self, arg__1: PySide2.QtWidgets.QWidget, arg__2: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mapFromGlobal(self, arg__1: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mapFromParent(self, arg__1: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mapTo(self, arg__1: PySide2.QtWidgets.QWidget, arg__2: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mapToGlobal(self, arg__1: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mapToParent(self, arg__1: PySide2.QtCore.QPoint) PySide2.QtCore.QPoint#
mask(self) PySide2.QtGui.QRegion#
maximumHeight(self) int#
maximumSize(self) PySide2.QtCore.QSize#
maximumWidth(self) int#
metaObject(self) PySide2.QtCore.QMetaObject#
metric(self, arg__1: PySide2.QtGui.QPaintDevice.PaintDeviceMetric) int#
minimumHeight(self) int#
minimumSize(self) PySide2.QtCore.QSize#
minimumSizeHint(self) PySide2.QtCore.QSize#
minimumWidth(self) int#
minumumSizeHint()#
motion_notify_event(x, y, guiEvent=None)#

[Deprecated] Callback processing for mouse movement events.

Backend derived classes should call this function on any motion-notify-event.

This method will call all functions connected to the ‘motion_notify_event’ with a MouseEvent instance.

Parameters:
  • x (float) – The canvas coordinates where 0=left.

  • y (float) – The canvas coordinates where 0=bottom.

  • guiEvent – The native UI event that generated the Matplotlib event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘motion_notify_event’, MouseEvent(…)) instead.

mouseDoubleClickEvent(self, event: PySide2.QtGui.QMouseEvent) None#
mouseEventCoords(pos=None)#

Calculate mouse coordinates in physical pixels.

Qt uses logical pixels, but the figure is scaled to physical pixels for rendering. Transform to physical pixels so that all of the down-stream transforms work as expected.

Also, the origin is different and needs to be corrected.

static mouseGrabber() PySide2.QtWidgets.QWidget#
mouseMoveEvent(self, event: PySide2.QtGui.QMouseEvent) None#
mousePressEvent(self, event: PySide2.QtGui.QMouseEvent) None#
mouseReleaseEvent(self, event: PySide2.QtGui.QMouseEvent) None#
move(self, arg__1: PySide2.QtCore.QPoint) None#
move(self, x: int, y: int) None
moveEvent(self, event: PySide2.QtGui.QMoveEvent) None#
moveToThread(self, thread: PySide2.QtCore.QThread) None#
mpl_connect(s, func)#

Bind function func to event s.

Parameters:
  • s (str) –

    One of the following events ids:

    • ’button_press_event’

    • ’button_release_event’

    • ’draw_event’

    • ’key_press_event’

    • ’key_release_event’

    • ’motion_notify_event’

    • ’pick_event’

    • ’resize_event’

    • ’scroll_event’

    • ’figure_enter_event’,

    • ’figure_leave_event’,

    • ’axes_enter_event’,

    • ’axes_leave_event’

    • ’close_event’.

  • func (callable) –

    The callback function to be executed, which must have the signature:

    def func(event: Event) -> Any
    

    For the location events (button and key press/release), if the mouse is over the Axes, the inaxes attribute of the event will be set to the ~matplotlib.axes.Axes the event occurs is over, and additionally, the variables xdata and ydata attributes will be set to the mouse location in data coordinates. See .KeyEvent and .MouseEvent for more info.

    Note

    If func is a method, this only stores a weak reference to the method. Thus, the figure does not influence the lifetime of the associated object. Usually, you want to make sure that the object is kept alive throughout the lifetime of the figure by holding a reference to it.

Returns:

A connection id that can be used with .FigureCanvasBase.mpl_disconnect.

Return type:

cid

Examples

def on_press(event):
    print('you pressed', event.button, event.xdata, event.ydata)

cid = canvas.mpl_connect('button_press_event', on_press)
mpl_disconnect(cid)#

Disconnect the callback with id cid.

Examples

cid = canvas.mpl_connect('button_press_event', on_press)
# ... later
canvas.mpl_disconnect(cid)
nativeEvent(self, eventType: PySide2.QtCore.QByteArray, message: int) Tuple[bool, int]#
nativeParentWidget(self) PySide2.QtWidgets.QWidget#
classmethod new_manager(figure, num)#

Create a new figure manager for figure, using this canvas class.

Notes

This method should not be reimplemented in subclasses. If custom manager creation logic is needed, please reimplement FigureManager.create_with_canvas.

new_timer(interval=None, callbacks=None)#

Create a new backend-specific subclass of .Timer.

This is useful for getting periodic events through the backend’s native event loop. Implemented only for backends with GUIs.

Parameters:
  • interval (int) – Timer interval in milliseconds.

  • callbacks (list[tuple[callable, tuple, dict]]) –

    Sequence of (func, args, kwargs) where func(*args, **kwargs) will be executed by the timer every interval.

    Callbacks which return False or 0 will be removed from the timer.

Examples

>>> timer = fig.canvas.new_timer(callbacks=[(f1, (1,), {'a': 3})])
nextInFocusChain(self) PySide2.QtWidgets.QWidget#
normalGeometry(self) PySide2.QtCore.QRect#
objectName(self) str#
overrideWindowFlags(self, type: PySide2.QtCore.Qt.WindowFlags) None#
overrideWindowState(self, state: PySide2.QtCore.Qt.WindowStates) None#
paintEngine(self) PySide2.QtGui.QPaintEngine#
paintEvent(event)#

Copy the image from the Agg canvas to the qt.drawable.

In Qt, all drawing should be done inside of here when a widget is shown onscreen.

paintingActive(self) bool#
palette(self) PySide2.QtGui.QPalette#
parent(self) PySide2.QtCore.QObject#
parentWidget(self) PySide2.QtWidgets.QWidget#
physicalDpiX(self) int#
physicalDpiY(self) int#
pick(mouseevent)#

[Deprecated]

Notes

Deprecated since version 3.6: Use canvas.figure.pick instead.

pick_event(mouseevent, artist, **kwargs)#

[Deprecated] Callback processing for pick events.

This method will be called by artists who are picked and will fire off PickEvent callbacks registered listeners.

Note that artists are not pickable by default (see .Artist.set_picker).

Notes

Deprecated since version 3.6: Use callbacks.process(‘pick_event’, PickEvent(…)) instead.

plot(clear=True, with_try=True)#

Render the plot.

Parameters:
  • clear (bool) – True to clear everything first. Defaults to True.

  • with_try (bool) – True to execute in a try-catch block. Defaults to True.

Raises:

Exception – Plotting error

pos(self) PySide2.QtCore.QPoint#
previousInFocusChain(self) PySide2.QtWidgets.QWidget#
print_figure(*args, **kwargs)#

Render the figure to hardcopy. Set the figure patch face and edge colors. This is useful because some of the GUIs have a gray figure face color background and you’ll probably want to override this on hardcopy.

Parameters:
  • filename (str or path-like or file-like) – The file where the figure is saved.

  • dpi (float, default: :rc:`savefig.dpi`) – The dots per inch to save the figure in.

  • facecolor (color or ‘auto’, default: :rc:`savefig.facecolor`) – The facecolor of the figure. If ‘auto’, use the current figure facecolor.

  • edgecolor (color or ‘auto’, default: :rc:`savefig.edgecolor`) – The edgecolor of the figure. If ‘auto’, use the current figure edgecolor.

  • orientation ({'landscape', 'portrait'}, default: 'portrait') – Only currently applies to PostScript printing.

  • format (str, optional) – Force a specific file format. If not given, the format is inferred from the filename extension, and if that fails from :rc:`savefig.format`.

  • bbox_inches (‘tight’ or .Bbox, default: :rc:`savefig.bbox`) – Bounding box in inches: only the given portion of the figure is saved. If ‘tight’, try to figure out the tight bbox of the figure.

  • pad_inches (float, default: :rc:`savefig.pad_inches`) – Amount of padding around the figure when bbox_inches is ‘tight’.

  • bbox_extra_artists (list of ~matplotlib.artist.Artist, optional) – A list of extra artists that will be considered when the tight bbox is calculated.

  • backend (str, optional) – Use a non-default backend to render the file, e.g. to render a png file with the “cairo” backend rather than the default “agg”, or a pdf file with the “pgf” backend rather than the default “pdf”. Note that the default backend is normally sufficient. See the-builtin-backends for a list of valid backends for each file format. Custom backends can be referenced as “module://…”.

print_jpeg(filename_or_obj, *, pil_kwargs=None)#

Write the figure to a JPEG file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • pil_kwargs (dict, optional) – Additional keyword arguments that are passed to PIL.Image.Image.save when saving the figure.

print_jpg(filename_or_obj, *, pil_kwargs=None)#

Write the figure to a JPEG file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • pil_kwargs (dict, optional) – Additional keyword arguments that are passed to PIL.Image.Image.save when saving the figure.

print_png(filename_or_obj, *, metadata=None, pil_kwargs=None)#

Write the figure to a PNG file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • metadata (dict, optional) –

    Metadata in the PNG file as key-value pairs of bytes or latin-1 encodable strings. According to the PNG specification, keys must be shorter than 79 chars.

    The PNG specification defines some common keywords that may be used as appropriate:

    • Title: Short (one line) title or caption for image.

    • Author: Name of image’s creator.

    • Description: Description of image (possibly long).

    • Copyright: Copyright notice.

    • Creation Time: Time of original image creation (usually RFC 1123 format).

    • Software: Software used to create the image.

    • Disclaimer: Legal disclaimer.

    • Warning: Warning of nature of content.

    • Source: Device used to create the image.

    • Comment: Miscellaneous comment; conversion from other image format.

    Other keywords may be invented for other purposes.

    If ‘Software’ is not given, an autogenerated value for Matplotlib will be used. This can be removed by setting it to None.

    For more details see the PNG specification.

  • pil_kwargs (dict, optional) –

    Keyword arguments passed to PIL.Image.Image.save.

    If the ‘pnginfo’ key is present, it completely overrides metadata, including the default ‘Software’ key.

print_raw(filename_or_obj)#
print_rgba(filename_or_obj)#
print_tif(filename_or_obj, *, pil_kwargs=None)#

Write the figure to a TIFF file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • pil_kwargs (dict, optional) – Additional keyword arguments that are passed to PIL.Image.Image.save when saving the figure.

print_tiff(filename_or_obj, *, pil_kwargs=None)#

Write the figure to a TIFF file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • pil_kwargs (dict, optional) – Additional keyword arguments that are passed to PIL.Image.Image.save when saving the figure.

print_to_buffer()#
print_webp(filename_or_obj, *, pil_kwargs=None)#

Write the figure to a WebP file.

Parameters:
  • filename_or_obj (str or path-like or file-like) – The file to write to.

  • pil_kwargs (dict, optional) – Additional keyword arguments that are passed to PIL.Image.Image.save when saving the figure.

property(self, name: bytes) Any#
raise_(self) None#
receivers(self, signal: bytes) int#
rect(self) PySide2.QtCore.QRect#
redirected(self, offset: PySide2.QtCore.QPoint) PySide2.QtGui.QPaintDevice#
refresh()#

Force refresh.

Does not replot renderer. Just mpl refresh.

static registerUserData() int#
releaseKeyboard(self) None#
releaseMouse(self) None#
releaseShortcut(self, id: int) None#
release_mouse(ax)#

Release the mouse grab held by the ~.axes.Axes ax.

Usually called by the widgets. It is ok to call this even if ax doesn’t have the mouse grab currently.

removeAction(self, action: PySide2.QtWidgets.QAction) None#
removeEventFilter(self, obj: PySide2.QtCore.QObject) None#
render(self, painter: PySide2.QtGui.QPainter, targetOffset: PySide2.QtCore.QPoint, sourceRegion: PySide2.QtGui.QRegion = Default(QRegion), renderFlags: PySide2.QtWidgets.QWidget.RenderFlags = Instance(QWidget.RenderFlags(QWidget.DrawWindowBackground | QWidget.DrawChildren))) None#
render(self, target: PySide2.QtGui.QPaintDevice, targetOffset: PySide2.QtCore.QPoint = Default(QPoint), sourceRegion: PySide2.QtGui.QRegion = Default(QRegion), renderFlags: PySide2.QtWidgets.QWidget.RenderFlags = Instance(QWidget.RenderFlags(QWidget.DrawWindowBackground | QWidget.DrawChildren))) None
repaint(self) None#
repaint(self, arg__1: PySide2.QtCore.QRect) None
repaint(self, arg__1: PySide2.QtGui.QRegion) None
repaint(self, x: int, y: int, w: int, h: int) None
resize(w, h)#

UNUSED: Set the canvas size in pixels.

Certain backends may implement a similar method internally, but this is not a requirement of, nor is it used by, Matplotlib itself.

resizeEvent(self, event: PySide2.QtGui.QResizeEvent) None#
resize_event()#

[Deprecated] Pass a ResizeEvent to all functions connected to resize_event.

Notes

Deprecated since version 3.6: Use callbacks.process(‘resize_event’, ResizeEvent(…)) instead.

restoreGeometry(self, geometry: PySide2.QtCore.QByteArray) bool#
restore_region(region, bbox=None, xy=None)#
saveGeometry(self) PySide2.QtCore.QByteArray#
screen(self) PySide2.QtGui.QScreen#
scroll(self, dx: int, dy: int) None#
scroll(self, dx: int, dy: int, arg__3: PySide2.QtCore.QRect) None
scroll_event(x, y, step, guiEvent=None)#

[Deprecated] Callback processing for scroll events.

Backend derived classes should call this function on any scroll wheel event. (x, y) are the canvas coords ((0, 0) is lower left). button and key are as defined in MouseEvent.

This method will call all functions connected to the ‘scroll_event’ with a MouseEvent instance.

Notes

Deprecated since version 3.6: Use callbacks.process(‘scroll_event’, MouseEvent(…)) instead.

sender(self) PySide2.QtCore.QObject#
senderSignalIndex(self) int#
setAcceptDrops(self, on: bool) None#
setAccessibleDescription(self, description: str) None#
setAccessibleName(self, name: str) None#
setAttribute(self, arg__1: PySide2.QtCore.Qt.WidgetAttribute, on: bool = True) None#
setAutoFillBackground(self, enabled: bool) None#
setBackgroundRole(self, arg__1: PySide2.QtGui.QPalette.ColorRole) None#
setBaseSize(self, arg__1: PySide2.QtCore.QSize) None#
setBaseSize(self, basew: int, baseh: int) None
setContentsMargins(self, left: int, top: int, right: int, bottom: int) None#
setContentsMargins(self, margins: PySide2.QtCore.QMargins) None
setContextMenuPolicy(self, policy: PySide2.QtCore.Qt.ContextMenuPolicy) None#
setCursor(self, arg__1: PySide2.QtGui.QCursor) None#
setDisabled(self, arg__1: bool) None#
setEnabled(self, arg__1: bool) None#
setFixedHeight(self, h: int) None#
setFixedSize(self, arg__1: PySide2.QtCore.QSize) None#
setFixedSize(self, w: int, h: int) None
setFixedWidth(self, w: int) None#
setFocus(self) None#
setFocus(self, reason: PySide2.QtCore.Qt.FocusReason) None
setFocusPolicy(self, policy: PySide2.QtCore.Qt.FocusPolicy) None#
setFocusProxy(self, arg__1: PySide2.QtWidgets.QWidget) None#
setFont(self, arg__1: PySide2.QtGui.QFont) None#
setForegroundRole(self, arg__1: PySide2.QtGui.QPalette.ColorRole) None#
setGeometry(self, arg__1: PySide2.QtCore.QRect) None#
setGeometry(self, x: int, y: int, w: int, h: int) None
setGraphicsEffect(self, effect: PySide2.QtWidgets.QGraphicsEffect) None#
setHidden(self, hidden: bool) None#
setInputMethodHints(self, hints: PySide2.QtCore.Qt.InputMethodHints) None#
setLayout(self, arg__1: PySide2.QtWidgets.QLayout) None#
setLayoutDirection(self, direction: PySide2.QtCore.Qt.LayoutDirection) None#
setLocale(self, locale: PySide2.QtCore.QLocale) None#
setMask(self, arg__1: PySide2.QtGui.QBitmap) None#
setMask(self, arg__1: PySide2.QtGui.QRegion) None
setMaximumHeight(self, maxh: int) None#
setMaximumSize(self, arg__1: PySide2.QtCore.QSize) None#
setMaximumSize(self, maxw: int, maxh: int) None
setMaximumWidth(self, maxw: int) None#
setMinimumHeight(self, minh: int) None#
setMinimumSize(self, arg__1: PySide2.QtCore.QSize) None#
setMinimumSize(self, minw: int, minh: int) None
setMinimumWidth(self, minw: int) None#
setMouseTracking(self, enable: bool) None#
setObjectName(self, name: str) None#
setPalette(self, arg__1: PySide2.QtGui.QPalette) None#
setParent(self, parent: PySide2.QtCore.QObject) None#
setParent(self, parent: PySide2.QtWidgets.QWidget) None
setParent(self, parent: PySide2.QtWidgets.QWidget, f: PySide2.QtCore.Qt.WindowFlags) None
setProperty(self, name: bytes, value: Any) bool#
setShortcutAutoRepeat(self, id: int, enable: bool = True) None#
setShortcutEnabled(self, id: int, enable: bool = True) None#
setSizeIncrement(self, arg__1: PySide2.QtCore.QSize) None#
setSizeIncrement(self, w: int, h: int) None
setSizePolicy(self, arg__1: PySide2.QtWidgets.QSizePolicy) None#
setSizePolicy(self, horizontal: PySide2.QtWidgets.QSizePolicy.Policy, vertical: PySide2.QtWidgets.QSizePolicy.Policy) None
setStatusTip(self, arg__1: str) None#
setStyle(self, arg__1: PySide2.QtWidgets.QStyle) None#
setStyleSheet(self, styleSheet: str) None#
static setTabOrder(arg__1: PySide2.QtWidgets.QWidget, arg__2: PySide2.QtWidgets.QWidget) None#
setTabletTracking(self, enable: bool) None#
setToolTip(self, arg__1: str) None#
setToolTipDuration(self, msec: int) None#
setUpdatesEnabled(self, enable: bool) None#
setVisible(self, visible: bool) None#
setWhatsThis(self, arg__1: str) None#
setWindowFilePath(self, filePath: str) None#
setWindowFlag(self, arg__1: PySide2.QtCore.Qt.WindowType, on: bool = True) None#
setWindowFlags(self, type: PySide2.QtCore.Qt.WindowFlags) None#
setWindowIcon(self, icon: PySide2.QtGui.QIcon) None#
setWindowIconText(self, arg__1: str) None#
setWindowModality(self, windowModality: PySide2.QtCore.Qt.WindowModality) None#
setWindowModified(self, arg__1: bool) None#
setWindowOpacity(self, level: float) None#
setWindowRole(self, arg__1: str) None#
setWindowState(self, state: PySide2.QtCore.Qt.WindowStates) None#
setWindowTitle(self, arg__1: str) None#
set_component(name: str)#

Shortcut to set a component in the component widget to be examined.

Parameters:

name (str) – Name of the component in the design

set_cursor(cursor)#

Set the current cursor.

This may have no effect if the backend does not display anything.

If required by the backend, this method should trigger an update in the backend event loop after the cursor is set, as this method may be called e.g. before a long-running task during which the GUI is not updated.

Parameters:

cursor (.Cursors) – The cursor to display over the canvas. Note: some backends may change the cursor for the entire window.

set_design(design: QDesign)#

Set the design.

Parameters:

design (QDesign) – the design

setup_figure_and_axes()#

Main setup from scratch.

setup_rendering()#

Line segment simplificatio: For plots that have line segments (e.g. typical line plots, outlines of polygons, etc.), rendering performance can be controlled by the path.simplify and path.simplify_threshold.

path_simplify:

When True, simplify paths by removing “invisible” points to reduce file size and increase rendering speed

path_simplify_threshold:

The threshold of similarity below which vertices will be removed in the simplification process

chuncksize:

0 to disable; values in the range 10000 to 100000 can improve speed slightly and prevent an Agg rendering failure when plotting very large data sets, especially if they are very gappy. It may cause minor artifacts, though. A value of 20000 is probably a good starting point.

https://matplotlib.org/3.1.1/tutorials/introductory/usage.html

sharedPainter(self) PySide2.QtGui.QPainter#
show(self) None#
showEvent(self, event: PySide2.QtGui.QShowEvent) None#
showFullScreen(self) None#
showMaximized(self) None#
showMinimized(self) None#
showNormal(self) None#
signalsBlocked(self) bool#
size(self) PySide2.QtCore.QSize#
sizeHint(self) PySide2.QtCore.QSize#
sizeIncrement(self) PySide2.QtCore.QSize#
sizePolicy(self) PySide2.QtWidgets.QSizePolicy#
stackUnder(self, arg__1: PySide2.QtWidgets.QWidget) None#
startTimer(self, interval: int, timerType: PySide2.QtCore.Qt.TimerType = PySide2.QtCore.Qt.TimerType.CoarseTimer) int#
start_event_loop(timeout=0)#

Start a blocking event loop.

Such an event loop is used by interactive functions, such as ~.Figure.ginput and ~.Figure.waitforbuttonpress, to wait for events.

The event loop blocks until a callback function triggers stop_event_loop, or timeout is reached.

If timeout is 0 or negative, never timeout.

Only interactive backends need to reimplement this method and it relies on flush_events being properly implemented.

Interactive backends should implement this in a more native way.

statusTip(self) str#
stop_event_loop(event=None)#

Stop the current blocking event loop.

Interactive backends need to reimplement this to match start_event_loop

style(self) PySide2.QtWidgets.QStyle#
styleSheet(self) str#
style_axis(ax, num: int)#

Style the axis.

Parameters:
  • ax (axis) – The axis

  • num (int) – Not used

style_figure()#

Style a figure.

switch_backends(FigureCanvasClass)#

Instantiate an instance of FigureCanvasClass

This is used for backend switching, e.g., to instantiate a FigureCanvasPS from a FigureCanvasGTK. Note, deep copying is not done, so any changes to one of the instances (e.g., setting figure size or line props), will be reflected in the other

tabletEvent(self, event: PySide2.QtGui.QTabletEvent) None#
testAttribute(self, arg__1: PySide2.QtCore.Qt.WidgetAttribute) bool#
thread(self) PySide2.QtCore.QThread#
timerEvent(self, event: PySide2.QtCore.QTimerEvent) None#
toolTip(self) str#
toolTipDuration(self) int#
topLevelWidget(self) PySide2.QtWidgets.QWidget#
tostring_argb()#

Get the image as ARGB bytes.

draw must be called at least once before this function will work and to update the renderer for any subsequent changes to the Figure.

tostring_rgb()#

Get the image as RGB bytes.

draw must be called at least once before this function will work and to update the renderer for any subsequent changes to the Figure.

tr(self, arg__1: bytes, arg__2: bytes = b'', arg__3: int = -1) str#
underMouse(self) bool#
ungrabGesture(self, type: PySide2.QtCore.Qt.GestureType) None#
unsetCursor(self) None#
unsetLayoutDirection(self) None#
unsetLocale(self) None#
update(self) None#
update(self, arg__1: PySide2.QtCore.QRect) None
update(self, arg__1: PySide2.QtGui.QRegion) None
update(self, x: int, y: int, w: int, h: int) None
updateGeometry(self) None#
updateMicroFocus(self) None#
updatesEnabled(self) bool#
visibleRegion(self) PySide2.QtGui.QRegion#
welcome_message()#

The GUI displays a message to let users know they are using Qiskit Metal.

whatsThis(self) str#
wheelEvent(self, event: PySide2.QtGui.QWheelEvent) None#
width(self) int#
widthMM(self) int#
winId(self) int#
window(self) PySide2.QtWidgets.QWidget#
windowFilePath(self) str#
windowFlags(self) PySide2.QtCore.Qt.WindowFlags#
windowHandle(self) PySide2.QtGui.QWindow#
windowIcon(self) PySide2.QtGui.QIcon#
windowIconText(self) str#
windowModality(self) PySide2.QtCore.Qt.WindowModality#
windowOpacity(self) float#
windowRole(self) str#
windowState(self) PySide2.QtCore.Qt.WindowStates#
windowTitle(self) str#
windowType(self) PySide2.QtCore.Qt.WindowType#
x(self) int#
y(self) int#
zoom_to_rectangle(bounds: tuple, ax: Axes | None = None)#

Zoom to the specified rectangle.

Parameters:
  • bounds (tuple) – Tuple containing minx, miny, maxx, maxy values for the bounds of the series as a whole.

  • ax (Axes) – Does for all if none (default: {None})