matplotlib.widgets#

Inheritance diagram of matplotlib.widgets

GUI neutral widgets#

Widgets that are designed to work for any of the GUI backends.All of these widgets require you to predefine anAxesinstance and pass that as the first parameter. Matplotlib doesn't try tobe too smart with respect to layout -- you will have to figure out howwide and tall you want your Axes to be to accommodate your widget.

classmatplotlib.widgets.AxesWidget(ax)[source]#

Bases:Widget

Widget connected to a singleAxes.

To guarantee that the widget remains responsive and not garbage-collected,a reference to the object should be maintained by the user.

This is necessary because the callback registrymaintains only weak-refs to the functions, which are memberfunctions of the widget. If there are no references to the widgetobject it may be garbage collected which will disconnect the callbacks.

Attributes:
axAxes

The parent Axes for the widget.

canvasFigureCanvasBase

The parent figure canvas for the widget.

activebool

Is the widget active?

propertycanvas#
connect_event(event,callback)[source]#

Connect a callback function with an event.

This should be used in lieu offigure.canvas.mpl_connect since thisfunction stores callback ids for later clean up.

disconnect_events()[source]#

Disconnect all events created by this widget.

classmatplotlib.widgets.Button(ax,label,image=None,color='0.85',hovercolor='0.95',*,useblit=True)[source]#

Bases:AxesWidget

A GUI neutral button.

For the button to remain responsive you must keep a reference to it.Callon_clicked to connect to the button.

Attributes:
ax

TheAxes the button renders into.

label

AText instance.

color

The color of the button when not hovering.

hovercolor

The color of the button when hovering.

Parameters:
axAxes

TheAxes instance the button will be placed into.

labelstr

The button text.

imagearray-like or PIL Image

The image to place in the button, if notNone. The parameter isdirectly forwarded toimshow.

colorcolor

The color of the button when not activated.

hovercolorcolor

The color of the button when the mouse is over it.

useblitbool, default: True

Use blitting for faster drawing if supported by the backend.See the tutorialFaster rendering by using blitting for details.

Added in version 3.7.

disconnect(cid)[source]#

Remove the callback function with connection idcid.

on_clicked(func)[source]#

Connect the callback functionfunc to button click events.

Returns a connection id, which can be used to disconnect the callback.

classmatplotlib.widgets.CheckButtons(ax,labels,actives=None,*,useblit=True,label_props=None,frame_props=None,check_props=None)[source]#

Bases:AxesWidget

A GUI neutral set of check buttons.

For the check buttons to remain responsive you must keep areference to this object.

Connect to the CheckButtons with theon_clicked method.

Attributes:
axAxes

The parent Axes for the widget.

labelslist ofText

The text label objects of the check buttons.

Add check buttons toAxes instanceax.

Parameters:
axAxes

The parent Axes for the widget.

labelslist of str

The labels of the check buttons.

activeslist of bool, optional

The initial check states of the buttons. The list must have thesame length aslabels. If not given, all buttons are unchecked.

useblitbool, default: True

Use blitting for faster drawing if supported by the backend.See the tutorialFaster rendering by using blitting for details.

Added in version 3.7.

label_propsdict, optional

Dictionary ofText properties to be used for the labels.

Added in version 3.7.

frame_propsdict, optional

Dictionary of scatterCollection properties to be used for thecheck button frame. Defaults (label font size / 2)**2 size, blackedgecolor, no facecolor, and 1.0 linewidth.

Added in version 3.7.

check_propsdict, optional

Dictionary of scatterCollection properties to be used for thecheck button check. Defaults to (label font size / 2)**2 size,black color, and 1.0 linewidth.

Added in version 3.7.

clear()[source]#

Uncheck all checkboxes.

disconnect(cid)[source]#

Remove the observer with connection idcid.

get_checked_labels()[source]#

Return a list of labels currently checked by user.

get_status()[source]#

Return a list of the status (True/False) of all of the check buttons.

on_clicked(func)[source]#

Connect the callback functionfunc to button click events.

Parameters:
funccallable

When the button is clicked, callfunc with button label.When all buttons are cleared, callfunc with None.The callback func must have the signature:

deffunc(label:str|None)->Any

Return values may exist, but are ignored.

Returns:
A connection id, which can be used to disconnect the callback.
set_active(index,state=None)[source]#

Modify the state of a check button by index.

Callbacks will be triggered ifeventson is True.

Parameters:
indexint

Index of the check button to toggle.

statebool, optional

If a boolean value, set the state explicitly. If no value isprovided, the state is toggled.

Raises:
ValueError

Ifindex is invalid.

TypeError

Ifstate is not boolean.

set_check_props(props)[source]#

Set properties of the check button checks.

Added in version 3.7.

Parameters:
propsdict

Dictionary ofCollection properties to be used for the checkbutton check.

set_frame_props(props)[source]#

Set properties of the check button frames.

Added in version 3.7.

Parameters:
propsdict

Dictionary ofCollection properties to be used for the checkbutton frames.

set_label_props(props)[source]#

Set properties of theText labels.

Added in version 3.7.

Parameters:
propsdict

Dictionary ofText properties to be used for the labels.

classmatplotlib.widgets.Cursor(ax,*,horizOn=True,vertOn=True,useblit=False,**lineprops)[source]#

Bases:AxesWidget

A crosshair cursor that spans the Axes and moves with mouse cursor.

For the cursor to remain responsive you must keep a reference to it.

Parameters:
axAxes

TheAxes to attach the cursor to.

horizOnbool, default: True

Whether to draw the horizontal line.

vertOnbool, default: True

Whether to draw the vertical line.

useblitbool, default: False

Use blitting for faster drawing if supported by the backend.See the tutorialFaster rendering by using blitting for details.

Other Parameters:
**lineprops

Line2D properties that control the appearance of the lines.See alsoaxhline.

Examples

SeeCursor.

clear(event)[source]#

Internal event handler to clear the cursor.

onmove(event)[source]#

Internal event handler to draw the cursor when the mouse moves.

classmatplotlib.widgets.EllipseSelector(ax,onselect=None,*,minspanx=0,minspany=0,useblit=False,props=None,spancoords='data',button=None,grab_range=10,handle_props=None,interactive=False,state_modifier_keys=None,drag_from_anywhere=False,ignore_event_outside=False,use_data_coordinates=False)[source]#

Bases:RectangleSelector

Select an elliptical region of an Axes.

For the cursor to remain responsive you must keep a reference to it.

Press and release events triggered at the same coordinates outside theselection will clear the selector, except whenignore_event_outside=True.

Parameters:
axAxes

The parent Axes for the widget.

onselectfunction, optional

A callback function that is called after a release event and theselection is created, changed or removed.It must have the signature:

defonselect(eclick:MouseEvent,erelease:MouseEvent)

whereeclick anderelease are the mouse click and releaseMouseEvents that start and complete the selection.

minspanxfloat, default: 0

Selections with an x-span less than or equal tominspanx are removed(when already existing) or cancelled.

minspanyfloat, default: 0

Selections with an y-span less than or equal tominspanx are removed(when already existing) or cancelled.

useblitbool, default: False

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propsdict, optional

Properties with which the ellipse is drawn. SeePatch for valid properties.Default:

dict(facecolor='red',edgecolor='black',alpha=0.2,fill=True)

spancoords{"data", "pixels"}, default: "data"

Whether to interpretminspanx andminspany in data or in pixelcoordinates.

buttonMouseButton, list ofMouseButton, default: all buttons

Button(s) that trigger rectangle selection.

grab_rangefloat, default: 10

Distance in pixels within which the interactive tool handles can beactivated.

handle_propsdict, optional

Properties with which the interactive handles (marker artists) aredrawn. See the marker arguments inLine2D for validproperties. Default values are defined inmpl.rcParams except forthe default value ofmarkeredgecolor which will be the same as theedgecolor property inprops.

interactivebool, default: False

Whether to draw a set of handles that allow interaction with thewidget after it is drawn.

state_modifier_keysdict, optional

Keyboard modifiers which affect the widget's behavior. Valuesamend the defaults, which are:

  • "move": Move the existing shape, default: no modifier.

  • "clear": Clear the current shape, default: "escape".

  • "square": Make the shape square, default: "shift".

  • "center": change the shape around its center, default: "ctrl".

  • "rotate": Rotate the shape around its center between -45° and 45°,default: "r".

"square" and "center" can be combined. The square shape can be definedin data or display coordinates as determined by theuse_data_coordinates argument specified when creating the selector.

drag_from_anywherebool, default: False

IfTrue, the widget can be moved by clicking anywhere withinits bounds.

ignore_event_outsidebool, default: False

IfTrue, the event triggered outside the span selector will beignored.

use_data_coordinatesbool, default: False

IfTrue, the "square" shape of the selector is defined indata coordinates instead of display coordinates.

Examples

Rectangle and ellipse selectors

classmatplotlib.widgets.Lasso(ax,xy,callback,*,useblit=True,props=None)[source]#

Bases:AxesWidget

Selection curve of an arbitrary shape.

The selected path can be used in conjunction withcontains_point to select data points from an image.

UnlikeLassoSelector, this must be initialized with a startingpointxy, and theLasso events are destroyed upon release.

Parameters:
axAxes

The parent Axes for the widget.

xy(float, float)

Coordinates of the start of the lasso.

callbackcallable

Whenever the lasso is released, thecallback function is called andpassed the vertices of the selected path.

useblitbool, default: True

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

props: dict, optional

Lasso line properties. SeeLine2D for valid properties.Defaultprops are:

{'linestyle':'-','color':'black','lw':2}

Added in version 3.9.

onmove(event)[source]#
onrelease(event)[source]#
classmatplotlib.widgets.LassoSelector(ax,onselect=None,*,useblit=True,props=None,button=None)[source]#

Bases:_SelectorWidget

Selection curve of an arbitrary shape.

For the selector to remain responsive you must keep a reference to it.

The selected path can be used in conjunction withcontains_pointto select data points from an image.

In contrast toLasso,LassoSelector is written with an interfacesimilar toRectangleSelector andSpanSelector, and will continue tointeract with the Axes until disconnected.

Example usage:

ax=plt.subplot()ax.plot(x,y)defonselect(verts):print(verts)lasso=LassoSelector(ax,onselect)
Parameters:
axAxes

The parent Axes for the widget.

onselectfunction, optional

Whenever the lasso is released, theonselect function is called andpassed the vertices of the selected path.

useblitbool, default: True

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propsdict, optional

Properties with which the line is drawn, seeLine2Dfor valid properties. Default values are defined inmpl.rcParams.

buttonMouseButton or list ofMouseButton, optional

The mouse buttons used for rectangle selection. Default isNone,which corresponds to all buttons.

classmatplotlib.widgets.LockDraw[source]#

Bases:object

Some widgets, like the cursor, draw onto the canvas, and this is notdesirable under all circumstances, like when the toolbar is in zoom-to-rectmode and drawing a rectangle. To avoid this, a widget can acquire acanvas' lock withcanvas.widgetlock(widget) before drawing on thecanvas; this will prevent other widgets from doing so at the same time (ifthey also try to acquire the lock first).

available(o)[source]#

Return whether drawing is available too.

isowner(o)[source]#

Return whethero owns this lock.

locked()[source]#

Return whether the lock is currently held by an owner.

release(o)[source]#

Release the lock fromo.

classmatplotlib.widgets.MultiCursor(canvas,axes,*,useblit=True,horizOn=False,vertOn=True,**lineprops)[source]#

Bases:Widget

Provide a vertical (default) and/or horizontal line cursor shared betweenmultiple Axes.

For the cursor to remain responsive you must keep a reference to it.

Parameters:
canvasobject

This parameter is entirely unused and only kept for back-compatibility.

axeslist ofAxes

TheAxes to attach the cursor to.

useblitbool, default: True

Use blitting for faster drawing if supported by the backend.See the tutorialFaster rendering by using blittingfor details.

horizOnbool, default: False

Whether to draw the horizontal line.

vertOnbool, default: True

Whether to draw the vertical line.

Other Parameters:
**lineprops

Line2D properties that control the appearance of the lines.See alsoaxhline.

Examples

SeeMulticursor.

clear(event)[source]#

Clear the cursor.

connect()[source]#

Connect events.

disconnect()[source]#

Disconnect events.

onmove(event)[source]#
classmatplotlib.widgets.PolygonSelector(ax,onselect=None,*,useblit=False,props=None,handle_props=None,grab_range=10,draw_bounding_box=False,box_handle_props=None,box_props=None)[source]#

Bases:_SelectorWidget

Select a polygon region of an Axes.

Place vertices with each mouse click, and make the selection by completingthe polygon (clicking on the first vertex). Once drawn individual verticescan be moved by clicking and dragging with the left mouse button, orremoved by clicking the right mouse button.

In addition, the following modifier keys can be used:

  • Holdctrl and click and drag a vertex to reposition it before thepolygon has been completed.

  • Hold theshift key and click and drag anywhere in the Axes to moveall vertices.

  • Press theesc key to start a new polygon.

For the selector to remain responsive you must keep a reference to it.

Parameters:
axAxes

The parent Axes for the widget.

onselectfunction, optional

When a polygon is completed or modified after completion,theonselect function is called and passed a list of the vertices as(xdata,ydata) tuples.

useblitbool, default: False

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propsdict, optional

Properties with which the line is drawn, seeLine2D for valid properties.Default:

dict(color='k',linestyle='-',linewidth=2,alpha=0.5)
handle_propsdict, optional

Artist properties for the markers drawn at the vertices of the polygon.See the marker arguments inLine2D for validproperties. Default values are defined inmpl.rcParams except forthe default value ofmarkeredgecolor which will be the same as thecolor property inprops.

grab_rangefloat, default: 10

A vertex is selected (to complete the polygon or to move a vertex) ifthe mouse click is withingrab_range pixels of the vertex.

draw_bounding_boxbool, optional

IfTrue, a bounding box will be drawn around the polygon selectoronce it is complete. This box can be used to move and resize theselector.

box_handle_propsdict, optional

Properties to set for the box handles. See the documentation for thehandle_props argument toRectangleSelector for more info.

box_propsdict, optional

Properties to set for the box. See the documentation for thepropsargument toRectangleSelector for more info.

Notes

If only one point remains after removing points, the selector reverts to anincomplete state and you can start drawing a new polygon from the existingpoint.

Examples

Polygon SelectorSelect indices from a collection using polygon selector

onmove(event)[source]#

Cursor move event handler and validator.

propertyverts#

The polygon vertices, as a list of(x,y) pairs.

classmatplotlib.widgets.RadioButtons(ax,labels,active=0,activecolor=None,*,useblit=True,label_props=None,radio_props=None)[source]#

Bases:AxesWidget

A GUI neutral radio button.

For the buttons to remain responsive you must keep a reference to thisobject.

Connect to the RadioButtons with theon_clicked method.

Attributes:
axAxes

The parent Axes for the widget.

activecolorcolor

The color of the selected button.

labelslist ofText

The button labels.

value_selectedstr

The label text of the currently selected button.

index_selectedint

The index of the selected button.

Add radio buttons to anAxes.

Parameters:
axAxes

The Axes to add the buttons to.

labelslist of str

The button labels.

activeint

The index of the initially selected button.

activecolorcolor

The color of the selected button. The default is'blue' if notspecified here or inradio_props.

useblitbool, default: True

Use blitting for faster drawing if supported by the backend.See the tutorialFaster rendering by using blitting for details.

Added in version 3.7.

label_propsdict or list of dict, optional

Dictionary ofText properties to be used for the labels.

Added in version 3.7.

radio_propsdict, optional

Dictionary of scatterCollection properties to be used for theradio buttons. Defaults to (label font size / 2)**2 size, blackedgecolor, andactivecolor facecolor (when active).

Note

If a facecolor is supplied inradio_props, it will overrideactivecolor. This may be used to provide an active color perbutton.

Added in version 3.7.

propertyactivecolor#
clear()[source]#

Reset the active button to the initially active one.

disconnect(cid)[source]#

Remove the observer with connection idcid.

on_clicked(func)[source]#

Connect the callback functionfunc to button click events.

Parameters:
funccallable

When the button is clicked, callfunc with button label.When all buttons are cleared, callfunc with None.The callback func must have the signature:

deffunc(label:str|None)->Any

Return values may exist, but are ignored.

Returns:
A connection id, which can be used to disconnect the callback.
set_active(index)[source]#

Select button with numberindex.

Callbacks will be triggered ifeventson is True.

Parameters:
indexint

The index of the button to activate.

Raises:
ValueError

If the index is invalid.

set_label_props(props)[source]#

Set properties of theText labels.

Added in version 3.7.

Parameters:
propsdict

Dictionary ofText properties to be used for the labels.

set_radio_props(props)[source]#

Set properties of theText labels.

Added in version 3.7.

Parameters:
propsdict

Dictionary ofCollection properties to be used for the radiobuttons.

classmatplotlib.widgets.RangeSlider(ax,label,valmin,valmax,*,valinit=None,valfmt=None,closedmin=True,closedmax=True,dragging=True,valstep=None,orientation='horizontal',track_color='lightgrey',handle_style=None,**kwargs)[source]#

Bases:SliderBase

A slider representing a range of floating point values. Defines the min andmax of the range via theval attribute as a tuple of (min, max).

Create a slider that defines a range contained within [valmin,valmax]in Axesax. For the slider to remain responsive you must maintain areference to it. Callon_changed() to connect to the slider event.

Attributes:
valtuple of float

Slider value.

Parameters:
axAxes

The Axes to put the slider in.

labelstr

Slider label.

valminfloat

The minimum value of the slider.

valmaxfloat

The maximum value of the slider.

valinittuple of float or None, default: None

The initial positions of the slider. If None the initial positionswill be at the 25th and 75th percentiles of the range.

valfmtstr, default: None

%-format string used to format the slider values. If None, aScalarFormatter is used instead.

closedminbool, default: True

Whether the slider interval is closed on the bottom.

closedmaxbool, default: True

Whether the slider interval is closed on the top.

draggingbool, default: True

If True the slider can be dragged by the mouse.

valstepfloat, default: None

If given, the slider will snap to multiples ofvalstep.

orientation{'horizontal', 'vertical'}, default: 'horizontal'

The orientation of the slider.

track_colorcolor, default: 'lightgrey'

The color of the background track. The track is accessible forfurther styling via thetrack attribute.

handle_styledict

Properties of the slider handles. Default values are

Key

Value

Default

Description

facecolor

color

'white'

The facecolor of the slider handles.

edgecolor

color

'.75'

The edgecolor of the slider handles.

size

int

10

The size of the slider handles in points.

Other values will be transformed as marker{foo} and passed to theLine2D constructor. e.g.handle_style={'style'='x'} willresult inmarkerstyle='x'.

Notes

Additional kwargs are passed on toself.poly which is thePolygon that draws the slider knob. See thePolygon documentation for valid property names (facecolor,edgecolor,alpha, etc.).

on_changed(func)[source]#

Connectfunc as callback function to changes of the slider value.

Parameters:
funccallable

Function to call when slider is changed. The functionmust accept a 2-tuple of floats as its argument.

Returns:
int

Connection id (which can be used to disconnectfunc).

set_max(max)[source]#

Set the lower value of the slider tomax.

Parameters:
maxfloat
set_min(min)[source]#

Set the lower value of the slider tomin.

Parameters:
minfloat
set_val(val)[source]#

Set slider value toval.

Parameters:
valtuple or array-like of float
classmatplotlib.widgets.RectangleSelector(ax,onselect=None,*,minspanx=0,minspany=0,useblit=False,props=None,spancoords='data',button=None,grab_range=10,handle_props=None,interactive=False,state_modifier_keys=None,drag_from_anywhere=False,ignore_event_outside=False,use_data_coordinates=False)[source]#

Bases:_SelectorWidget

Select a rectangular region of an Axes.

For the cursor to remain responsive you must keep a reference to it.

Press and release events triggered at the same coordinates outside theselection will clear the selector, except whenignore_event_outside=True.

Parameters:
axAxes

The parent Axes for the widget.

onselectfunction, optional

A callback function that is called after a release event and theselection is created, changed or removed.It must have the signature:

defonselect(eclick:MouseEvent,erelease:MouseEvent)

whereeclick anderelease are the mouse click and releaseMouseEvents that start and complete the selection.

minspanxfloat, default: 0

Selections with an x-span less than or equal tominspanx are removed(when already existing) or cancelled.

minspanyfloat, default: 0

Selections with an y-span less than or equal tominspanx are removed(when already existing) or cancelled.

useblitbool, default: False

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propsdict, optional

Properties with which the rectangle is drawn. SeePatch for valid properties.Default:

dict(facecolor='red',edgecolor='black',alpha=0.2,fill=True)

spancoords{"data", "pixels"}, default: "data"

Whether to interpretminspanx andminspany in data or in pixelcoordinates.

buttonMouseButton, list ofMouseButton, default: all buttons

Button(s) that trigger rectangle selection.

grab_rangefloat, default: 10

Distance in pixels within which the interactive tool handles can beactivated.

handle_propsdict, optional

Properties with which the interactive handles (marker artists) aredrawn. See the marker arguments inLine2D for validproperties. Default values are defined inmpl.rcParams except forthe default value ofmarkeredgecolor which will be the same as theedgecolor property inprops.

interactivebool, default: False

Whether to draw a set of handles that allow interaction with thewidget after it is drawn.

state_modifier_keysdict, optional

Keyboard modifiers which affect the widget's behavior. Valuesamend the defaults, which are:

  • "move": Move the existing shape, default: no modifier.

  • "clear": Clear the current shape, default: "escape".

  • "square": Make the shape square, default: "shift".

  • "center": change the shape around its center, default: "ctrl".

  • "rotate": Rotate the shape around its center between -45° and 45°,default: "r".

"square" and "center" can be combined. The square shape can be definedin data or display coordinates as determined by theuse_data_coordinates argument specified when creating the selector.

drag_from_anywherebool, default: False

IfTrue, the widget can be moved by clicking anywhere withinits bounds.

ignore_event_outsidebool, default: False

IfTrue, the event triggered outside the span selector will beignored.

use_data_coordinatesbool, default: False

IfTrue, the "square" shape of the selector is defined indata coordinates instead of display coordinates.

Examples

>>>importmatplotlib.pyplotasplt>>>importmatplotlib.widgetsasmwidgets>>>fig,ax=plt.subplots()>>>ax.plot([1,2,3],[10,50,100])>>>defonselect(eclick,erelease):...print(eclick.xdata,eclick.ydata)...print(erelease.xdata,erelease.ydata)>>>props=dict(facecolor='blue',alpha=0.5)>>>rect=mwidgets.RectangleSelector(ax,onselect,interactive=True,...props=props)>>>fig.show()>>>rect.add_state('square')

See also:Rectangle and ellipse selectors

propertycenter#

Center of rectangle in data coordinates.

propertycorners#

Corners of rectangle in data coordinates from lower left,moving clockwise.

propertyedge_centers#

Midpoint of rectangle edges in data coordinates from left,moving anti-clockwise.

propertyextents#

Return (xmin, xmax, ymin, ymax) in data coordinates as defined by thebounding box before rotation.

propertygeometry#

Return an array of shape (2, 5) containing thex (RectangleSelector.geometry[1,:]) andy (RectangleSelector.geometry[0,:]) data coordinates of the fourcorners of the rectangle starting and ending in the top left corner.

propertyrotation#

Rotation in degree in interval [-45°, 45°]. The rotation is limited inrange to keep the implementation simple.

classmatplotlib.widgets.Slider(ax,label,valmin,valmax,*,valinit=0.5,valfmt=None,closedmin=True,closedmax=True,slidermin=None,slidermax=None,dragging=True,valstep=None,orientation='horizontal',initcolor='r',track_color='lightgrey',handle_style=None,**kwargs)[source]#

Bases:SliderBase

A slider representing a floating point range.

Create a slider fromvalmin tovalmax in Axesax. For the slider toremain responsive you must maintain a reference to it. Callon_changed() to connect to the slider event.

Attributes:
valfloat

Slider value.

Parameters:
axAxes

The Axes to put the slider in.

labelstr

Slider label.

valminfloat

The minimum value of the slider.

valmaxfloat

The maximum value of the slider.

valinitfloat, default: 0.5

The slider initial position.

valfmtstr, default: None

%-format string used to format the slider value. If None, aScalarFormatter is used instead.

closedminbool, default: True

Whether the slider interval is closed on the bottom.

closedmaxbool, default: True

Whether the slider interval is closed on the top.

sliderminSlider, default: None

Do not allow the current slider to have a value less thanthe value of the Sliderslidermin.

slidermaxSlider, default: None

Do not allow the current slider to have a value greater thanthe value of the Sliderslidermax.

draggingbool, default: True

If True the slider can be dragged by the mouse.

valstepfloat or array-like, default: None

If a float, the slider will snap to multiples ofvalstep.If an array the slider will snap to the values in the array.

orientation{'horizontal', 'vertical'}, default: 'horizontal'

The orientation of the slider.

initcolorcolor, default: 'r'

The color of the line at thevalinit position. Set to'none'for no line.

track_colorcolor, default: 'lightgrey'

The color of the background track. The track is accessible forfurther styling via thetrack attribute.

handle_styledict

Properties of the slider handle. Default values are

Key

Value

Default

Description

facecolor

color

'white'

The facecolor of the slider handle.

edgecolor

color

'.75'

The edgecolor of the slider handle.

size

int

10

The size of the slider handle in points.

Other values will be transformed as marker{foo} and passed to theLine2D constructor. e.g.handle_style={'style'='x'} willresult inmarkerstyle='x'.

Notes

Additional kwargs are passed on toself.poly which is theRectangle that draws the slider knob. See theRectangle documentation for valid property names (facecolor,edgecolor,alpha, etc.).

on_changed(func)[source]#

Connectfunc as callback function to changes of the slider value.

Parameters:
funccallable

Function to call when slider is changed.The function must accept a single float as its arguments.

Returns:
int

Connection id (which can be used to disconnectfunc).

set_val(val)[source]#

Set slider value toval.

Parameters:
valfloat
classmatplotlib.widgets.SliderBase(ax,orientation,closedmin,closedmax,valmin,valmax,valfmt,dragging,valstep)[source]#

Bases:AxesWidget

The base class for constructing Slider widgets. Not intended for directusage.

For the slider to remain responsive you must maintain a reference to it.

disconnect(cid)[source]#

Remove the observer with connection idcid.

Parameters:
cidint

Connection id of the observer to be removed.

reset()[source]#

Reset the slider to the initial value.

classmatplotlib.widgets.SpanSelector(ax,onselect,direction,*,minspan=0,useblit=False,props=None,onmove_callback=None,interactive=False,button=None,handle_props=None,grab_range=10,state_modifier_keys=None,drag_from_anywhere=False,ignore_event_outside=False,snap_values=None)[source]#

Bases:_SelectorWidget

Visually select a min/max range on a single axis and call a function withthose values.

To guarantee that the selector remains responsive, keep a reference to it.

In order to turn off the SpanSelector, setspan_selector.active toFalse. To turn it back on, set it to True.

Press and release events triggered at the same coordinates outside theselection will clear the selector, except whenignore_event_outside=True.

Parameters:
axAxes
onselectcallable with signaturefunc(min:float,max:float)

A callback function that is called after a release event and theselection is created, changed or removed.

direction{"horizontal", "vertical"}

The direction along which to draw the span selector.

minspanfloat, default: 0

If selection is less than or equal tominspan, the selection isremoved (when already existing) or cancelled.

useblitbool, default: False

If True, use the backend-dependent blitting features for fastercanvas updates. See the tutorialFaster rendering by using blitting for details.

propsdict, default: {'facecolor': 'red', 'alpha': 0.5}

Dictionary ofPatch properties.

onmove_callbackcallable with signaturefunc(min:float,max:float), optional

Called on mouse move while the span is being selected.

interactivebool, default: False

Whether to draw a set of handles that allow interaction with thewidget after it is drawn.

buttonMouseButton or list ofMouseButton, default: all buttons

The mouse buttons which activate the span selector.

handle_propsdict, default: None

Properties of the handle lines at the edges of the span. Only usedwheninteractive is True. SeeLine2D for valid properties.

grab_rangefloat, default: 10

Distance in pixels within which the interactive tool handles can be activated.

state_modifier_keysdict, optional

Keyboard modifiers which affect the widget's behavior. Valuesamend the defaults, which are:

  • "clear": Clear the current shape, default: "escape".

drag_from_anywherebool, default: False

IfTrue, the widget can be moved by clicking anywhere within its bounds.

ignore_event_outsidebool, default: False

IfTrue, the event triggered outside the span selector will be ignored.

snap_values1D array-like, optional

Snap the selector edges to the given values.

Examples

>>>importmatplotlib.pyplotasplt>>>importmatplotlib.widgetsasmwidgets>>>fig,ax=plt.subplots()>>>ax.plot([1,2,3],[10,50,100])>>>defonselect(vmin,vmax):...print(vmin,vmax)>>>span=mwidgets.SpanSelector(ax,onselect,'horizontal',...props=dict(facecolor='blue',alpha=0.5))>>>fig.show()

See also:Span Selector

connect_default_events()[source]#

Connect the major canvas events to methods.

propertydirection#

Direction of the span selector: 'vertical' or 'horizontal'.

propertyextents#
(float, float)

The values, in data coordinates, for the start and end points of the currentselection. If there is no selection then the start and end values will bethe same.

new_axes(ax,*,_props=None,_init=False)[source]#

Set SpanSelector to operate on a new Axes.

classmatplotlib.widgets.SubplotTool(targetfig,toolfig)[source]#

Bases:Widget

A tool to adjust the subplot params of aFigure.

Parameters:
targetfigFigure

The figure instance to adjust.

toolfigFigure

The figure instance to embed the subplot tool into.

classmatplotlib.widgets.TextBox(ax,label,initial='',*,color='.95',hovercolor='1',label_pad=0.01,textalignment='left')[source]#

Bases:AxesWidget

A GUI neutral text input box.

For the text box to remain responsive you must keep a reference to it.

Callon_text_change to be updated whenever the text changes.

Callon_submit to be updated whenever the user hits enter orleaves the text entry field.

Attributes:
axAxes

The parent Axes for the widget.

labelText
colorcolor

The color of the text box when not hovering.

hovercolorcolor

The color of the text box when hovering.

Parameters:
axAxes

TheAxes instance the button will be placed into.

labelstr

Label for this text box.

initialstr

Initial value in the text box.

colorcolor

The color of the box.

hovercolorcolor

The color of the box when the mouse is over it.

label_padfloat

The distance between the label and the right side of the textbox.

textalignment{'left', 'center', 'right'}

The horizontal location of the text.

begin_typing()[source]#
disconnect(cid)[source]#

Remove the observer with connection idcid.

on_submit(func)[source]#

When the user hits enter or leaves the submission box, call thisfunc with event.

A connection id is returned which can be used to disconnect.

on_text_change(func)[source]#

When the text changes, call thisfunc with event.

A connection id is returned which can be used to disconnect.

set_val(val)[source]#
stop_typing()[source]#
propertytext#
classmatplotlib.widgets.ToolHandles(ax,x,y,*,marker='o',marker_props=None,useblit=True)[source]#

Bases:object

Control handles for canvas tools.

Parameters:
axAxes

Matplotlib Axes where tool handles are displayed.

x, y1D arrays

Coordinates of control handles.

markerstr, default: 'o'

Shape of marker used to display handle. Seeplot.

marker_propsdict, optional

Additional marker properties. SeeLine2D.

useblitbool, default: True

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propertyartists#
closest(x,y)[source]#

Return index and pixel distance to closest index.

set_animated(val)[source]#
set_data(pts,y=None)[source]#

Set x and y positions of handles.

set_visible(val)[source]#
propertyx#
propertyy#
classmatplotlib.widgets.ToolLineHandles(ax,positions,direction,*,line_props=None,useblit=True)[source]#

Bases:object

Control handles for canvas tools.

Parameters:
axAxes

Matplotlib Axes where tool handles are displayed.

positions1D array

Positions of handles in data coordinates.

direction{"horizontal", "vertical"}

Direction of handles, either 'vertical' or 'horizontal'

line_propsdict, optional

Additional line properties. SeeLine2D.

useblitbool, default: True

Whether to use blitting for faster drawing (if supported by thebackend). See the tutorialFaster rendering by using blittingfor details.

propertyartists#
closest(x,y)[source]#

Return index and pixel distance to closest handle.

Parameters:
x, yfloat

x, y position from which the distance will be calculated todeterminate the closest handle

Returns:
index, distanceindex of the handle and its distance from

position x, y

propertydirection#

Direction of the handle: 'vertical' or 'horizontal'.

propertypositions#

Positions of the handle in data coordinates.

remove()[source]#

Remove the handles artist from the figure.

set_animated(value)[source]#

Set the animated state of the handles artist.

set_data(positions)[source]#

Set x- or y-positions of handles, depending on if the lines arevertical or horizontal.

Parameters:
positionstuple of length 2

Set the positions of the handle in data coordinates

set_visible(value)[source]#

Set the visibility state of the handles artist.

classmatplotlib.widgets.Widget[source]#

Bases:object

Abstract base class for GUI neutral widgets.

propertyactive#

Is the widget active?

drawon=True#
eventson=True#
get_active()[source]#

Get whether the widget is active.

ignore(event)[source]#

Return whetherevent should be ignored.

This method should be called at the beginning of any event callback.

set_active(active)[source]#

Set whether the widget is active.

On this page