matplotlib.widgets#

Inheritance diagram of matplotlib.widgets

GUI 中立的小部件#

专为任何GUI后端设计的部件。所有这些部件都需要你预定义一个 Axes 实例,并将其作为第一个参数传递。Matplotlib 在布局方面不会过于智能——你需要自行决定 Axes 的宽度和高度,以适应你的部件。

class matplotlib.widgets.AxesWidget(ax)[源代码][源代码]#

基类:Widget

连接到单个 Axes 的小部件。

为了确保小部件保持响应且不被垃圾回收,用户应维护对该对象的引用。

这是必要的,因为回调注册表仅维护对作为小部件成员函数的函数的弱引用。如果没有对小部件对象的引用,它可能会被垃圾回收,这将断开回调。

属性:
axAxes

小部件的父级 Axes。

画布 : FigureCanvasBaseFigureCanvasBase

小部件的父图画布。

active布尔值

小部件是否处于活动状态?

property canvas#

!! 由 numpydoc 处理 !!

connect_event(event, callback)[源代码][源代码]#

将回调函数与事件连接。

应使用此方法代替 figure.canvas.mpl_connect ,因为此函数会存储回调ID以便稍后清理。

disconnect_events()[源代码][源代码]#

断开此小部件创建的所有事件。

class matplotlib.widgets.Button(ax, label, image=None, color='0.85', hovercolor='0.95', *, useblit=True)[源代码][源代码]#

基类:AxesWidget

一个与图形用户界面无关的按钮。

为了使按钮保持响应,你必须保留对它的引用。调用 on_clicked 来连接按钮。

属性:

按钮渲染到的 Axes

标签

一个 Text 实例。

颜色

按钮未悬停时的颜色。

悬停颜色

按钮悬停时的颜色。

参数:
axAxes

按钮将被放置的 Axes 实例。

标签str

按钮文本。

图像类数组或PIL图像

按钮中放置的图像,如果不是 None 。该参数直接传递给 imshow

颜色 : color颜色

按钮未激活时的颜色。

hovercolor颜色

鼠标悬停时按钮的颜色。

useblitbool, 默认值: True

如果后端支持,使用blitting进行更快的绘图。详情请参阅教程 通过使用 blitting 实现更快的渲染

Added in version 3.7.

disconnect(cid)[源代码][源代码]#

使用连接ID cid 移除回调函数。

on_clicked(func)[源代码][源代码]#

将回调函数 func 连接到按钮点击事件。

返回一个连接ID,该ID可用于断开回调。

class matplotlib.widgets.CheckButtons(ax, labels, actives=None, *, useblit=True, label_props=None, frame_props=None, check_props=None)[源代码][源代码]#

基类:AxesWidget

一组与图形用户界面无关的复选按钮。

为了使复选按钮保持响应,您必须保留对此对象的引用。

使用 on_clicked 方法连接到 CheckButtons。

属性:
axAxes

小部件的父级 Axes。

标签 : Text 的列表列表

复选按钮的文本标签对象。

将检查按钮添加到 Axes 实例 ax 中。

参数:
axAxes

小部件的父级 Axes。

标签list of str

复选按钮的标签。

活动布尔值列表,可选

按钮的初始检查状态。列表的长度必须与 labels 相同。如果未给出,所有按钮均为未选中状态。

useblitbool, 默认值: True

如果后端支持,使用blitting进行更快的绘图。详情请参阅教程 通过使用 blitting 实现更快的渲染

Added in version 3.7.

label_props字典,可选

用于标签的 Text 属性字典。

Added in version 3.7.

frame_props字典,可选

用于检查按钮框架的散点 Collection 属性的字典。默认值为(标签字体大小 / 2)**2 大小,黑色边缘颜色,无面颜色,以及 1.0 线宽。

Added in version 3.7.

check_props字典,可选

散点图 Collection 属性的字典,用于检查按钮的检查。默认值为 (标签字体大小 / 2)**2 大小,黑色颜色,以及 1.0 线宽。

Added in version 3.7.

clear()[源代码][源代码]#

取消所有复选框的选中状态。

disconnect(cid)[源代码][源代码]#

移除连接ID为 cid 的观察者。

get_checked_labels()[源代码][源代码]#

返回用户当前选中的标签列表。

get_status()[源代码][源代码]#

返回所有复选按钮状态(True/False)的列表。

on_clicked(func)[源代码][源代码]#

将回调函数 func 连接到按钮点击事件。

参数:
函数可调用

当按钮被点击时,使用按钮标签调用 func。当所有按钮都被清除时,使用 None 调用 func。回调函数 func 必须具有以下签名:

def func(label: str | None) -> Any

可能存在返回值,但会被忽略。

返回:
一个连接ID,可用于断开回调。
set_active(index, state=None)[源代码][源代码]#

通过索引修改复选按钮的状态。

如果 eventson 为 True,回调将被触发。

参数:
索引整数

切换复选按钮的索引。

状态bool, 可选

如果是布尔值,则显式设置状态。如果没有提供值,则切换状态。

引发:
ValueError

如果 index 无效。

类型错误

如果 state 不是布尔值。

set_check_props(props)[源代码][源代码]#

设置复选按钮的属性。

Added in version 3.7.

参数:
属性dict

用于检查按钮检查的 Collection 属性字典。

set_frame_props(props)[源代码][源代码]#

设置复选按钮框架的属性。

Added in version 3.7.

参数:
属性dict

用于检查按钮框架的 Collection 属性字典。

set_label_props(props)[源代码][源代码]#

设置 Text 标签的属性。

Added in version 3.7.

参数:
属性dict

用于标签的 Text 属性字典。

class matplotlib.widgets.Cursor(ax, *, horizOn=True, vertOn=True, useblit=False, **lineprops)[源代码][源代码]#

基类:AxesWidget

一个跨越Axes并随鼠标光标移动的十字准线光标。

为了使光标保持响应,您必须保持对它的引用。

参数:
axAxes

要附加光标的 Axes

horizOnbool, 默认值: True

是否绘制水平线。

vertOnbool, 默认值: True

是否绘制垂直线。

useblitbool, 默认值: False

如果后端支持,使用blitting进行更快的绘图。详情请参阅教程 通过使用 blitting 实现更快的渲染

其他参数:
**线属性

控制线条外观的 Line2D 属性。另请参阅 axhline

示例

参见 光标

clear(event)[源代码][源代码]#

内部事件处理程序以清除光标。

onmove(event)[源代码][源代码]#

内部事件处理器,用于在鼠标移动时绘制光标。

class matplotlib.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)[源代码][源代码]#

基类:RectangleSelector

选择一个Axes的椭圆形区域。

为了使光标保持响应,您必须保持对它的引用。

在选择区域外的相同坐标处触发的按下和释放事件将清除选择器,除非 ignore_event_outside=True

参数:
axAxes

小部件的父级 Axes。

onselect函数, 可选

一个在释放事件发生后并且选择被创建、更改或移除时调用的回调函数。它必须具有以下签名:

def onselect(eclick: MouseEvent, erelease: MouseEvent)

其中 eclickerelease 是启动和完成选择的鼠标点击和释放 MouseEvent

minspanxfloat, 默认值: 0

x-span 小于或等于 minspanx 的选择将被移除(如果已经存在)或取消。

minspanyfloat, 默认值: 0

y-跨度小于或等于 minspanx 的选择将被移除(如果已存在)或取消。

useblitbool, 默认值: False

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

属性字典,可选

用于绘制椭圆的属性。参见 Patch 以获取有效属性。默认值:

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

spancoordsdata, pixels,默认值:data

是否在数据或像素坐标中解释 minspanxminspany

按钮 : MouseButton, 列表的 MouseButton, 默认: 所有按钮MouseButton, MouseButton 列表, 默认: 所有按钮

触发矩形选择的按钮。

grab_rangefloat, 默认值: 10

交互工具手柄可以在其中被激活的像素距离。

handle_props字典,可选

用于绘制交互式句柄(标记艺术家)的属性。有关有效属性,请参见 Line2D 中的标记参数。默认值在 mpl.rcParams 中定义,除了 markeredgecolor 的默认值将与 props 中的 edgecolor 属性相同。

交互式bool, 默认值: False

是否绘制一组手柄,以便在绘制小部件后与之交互。

state_modifier_keys字典,可选

影响小部件行为的键盘修饰符。这些值会修改默认值,默认值为:

  • “移动”:移动现有形状,默认:无修饰符。

  • "clear": 清除当前形状,默认: "escape"。

  • "square": 使形状为方形,默认值为 "shift"。

  • "center": 围绕其中心改变形状,默认: "ctrl"。

  • "rotate": 将图形围绕其中心在 -45° 和 45° 之间旋转,默认值: "r"。

"square" 和 "center" 可以结合使用。正方形形状可以通过在创建选择器时指定的 use_data_coordinates 参数来定义为数据坐标或显示坐标。

drag_from_anywherebool, 默认值: False

如果 True,则可以通过点击其边界内的任何位置来移动小部件。

ignore_event_outsidebool, 默认值: False

如果 True,则将忽略在跨度选择器外部触发的事件。

use_data_coordinatesbool, 默认值: False

如果为 True,选择器的“方形”形状在数据坐标中定义,而不是在显示坐标中定义。

示例

矩形和椭圆选择器

class matplotlib.widgets.Lasso(ax, xy, callback, *, useblit=True, props=None)[源代码][源代码]#

基类:AxesWidget

任意形状的选择曲线。

所选路径可以与 contains_point 结合使用,从图像中选择数据点。

LassoSelector 不同,这必须用一个起点 xy 初始化,并且在释放时 Lasso 事件会被销毁。

参数:
axAxes

小部件的父级 Axes。

xy(浮点数, 浮点数)

套索起点的坐标。

回调可调用

每当释放套索时,回调 函数会被调用,并传递所选路径的顶点。

useblitbool, 默认值: True

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

props: dict, 可选

Lasso 线条属性。查看 Line2D 以获取有效属性。默认的 props 是:

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

Added in version 3.9.

onmove(event)[源代码][源代码]#
onrelease(event)[源代码][源代码]#
class matplotlib.widgets.LassoSelector(ax, onselect=None, *, useblit=True, props=None, button=None)[源代码][源代码]#

基类:_SelectorWidget

任意形状的选择曲线。

为了使选择器保持响应,您必须保留对它的引用。

所选路径可以与 contains_point 结合使用,以从图像中选择数据点。

Lasso 相比,LassoSelector 的接口与 RectangleSelectorSpanSelector 类似,并且在与 Axes 断开连接之前会持续交互。

示例用法:

ax = plt.subplot()
ax.plot(x, y)

def onselect(verts):
    print(verts)
lasso = LassoSelector(ax, onselect)
参数:
axAxes

小部件的父级 Axes。

onselect函数, 可选

每当释放套索时,onselect 函数会被调用,并传入选中路径的顶点。

useblitbool, 默认值: True

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

属性字典,可选

绘制线条时使用的属性,参见 Line2D 以获取有效属性。默认值在 mpl.rcParams 中定义。

按钮 : MouseButtonMouseButton 列表, 可选MouseButton 或 MouseButton 列表,可选

用于矩形选择的鼠标按钮。默认是 None,这对应于所有按钮。

class matplotlib.widgets.LockDraw[源代码][源代码]#

基类:object

一些部件,如光标,会在画布上绘制,这在所有情况下并不理想,例如当工具栏处于缩放到矩形模式并绘制矩形时。为了避免这种情况,部件可以在绘制画布之前通过 canvas.widgetlock(widget) 获取画布的锁;这将防止其他部件同时进行绘制(如果它们也尝试首先获取锁)。

available(o)[源代码][源代码]#

返回是否可以对 o 进行绘制。

isowner(o)[源代码][源代码]#

返回 o 是否拥有此锁。

locked()[源代码][源代码]#

返回锁当前是否被某个所有者持有。

release(o)[源代码][源代码]#

o 释放锁。

class matplotlib.widgets.MultiCursor(canvas, axes, *, useblit=True, horizOn=False, vertOn=True, **lineprops)[源代码][源代码]#

基类:Widget

提供一个在多个 Axes 之间共享的垂直(默认)和/或水平线光标。

为了使光标保持响应,您必须保持对它的引用。

参数:
画布对象

此参数完全未被使用,仅保留以实现向后兼容。

axes : Axes 的列表列表

要附加光标的 Axes

useblitbool, 默认值: True

如果后端支持,使用blitting进行更快的绘图。详情请参阅教程 通过使用 blitting 实现更快的渲染

horizOnbool, 默认值: False

是否绘制水平线。

vertOnbool, 默认值: True

是否绘制垂直线。

其他参数:
**线属性

控制线条外观的 Line2D 属性。另请参阅 axhline

示例

参见 多光标

clear(event)[源代码][源代码]#

清除光标。

connect()[源代码][源代码]#

连接事件。

disconnect()[源代码][源代码]#

断开连接事件。

onmove(event)[源代码][源代码]#
class matplotlib.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)[源代码][源代码]#

基类:_SelectorWidget

选择一个 Axes 的多边形区域。

通过每次鼠标点击放置顶点,并通过完成多边形(点击第一个顶点)进行选择。绘制完成后,可以通过点击并拖动左键移动单个顶点,或通过点击右键移除顶点。

此外,可以使用以下修饰键:

  • 按住 ctrl 并点击并拖动顶点,可以在多边形完成之前重新定位它。

  • 按住 shift 键并在 Axes 中的任意位置点击并拖动,以移动所有顶点。

  • 按下 esc 键开始一个新的多边形。

为了使选择器保持响应,您必须保留对它的引用。

参数:
axAxes

小部件的父级 Axes。

onselect函数, 可选

当一个多边形在完成或完成后被修改时,onselect 函数会被调用,并传递一个包含顶点的列表,这些顶点以 (xdata, ydata) 元组的形式表示。

useblitbool, 默认值: False

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

属性字典,可选

绘制线条的属性,查看 Line2D 以获取有效属性。默认值:

dict(color='k', linestyle='-', linewidth=2, alpha=0.5)
handle_props字典,可选

多边形顶点处绘制的标记的艺术家属性。有关有效属性,请参见 Line2D 中的标记参数。默认值在 mpl.rcParams 中定义,除了 markeredgecolor 的默认值将与 props 中的 color 属性相同。

grab_rangefloat, 默认值: 10

如果鼠标点击在顶点 grab_range 像素范围内,则选择该顶点(以完成多边形或移动顶点)。

绘制边界框bool, 可选

如果 True,多边形选择器完成后将绘制一个边界框。此框可用于移动和调整选择器的大小。

box_handle_props字典,可选

用于设置框句柄的属性。更多信息请参阅 RectangleSelectorhandle_props 参数文档。

box_props字典,可选

要为框设置的属性。有关更多信息,请参阅 RectangleSelectorprops 参数的文档。

注释

如果在移除点后只剩下一个点,选择器将恢复到未完成状态,您可以从现有点开始绘制新的多边形。

示例

多边形选择器 使用多边形选择器从集合中选择索引

onmove(event)[源代码][源代码]#

光标移动事件处理器和验证器。

property verts#

多边形的顶点,作为 (x, y) 对的列表。

class matplotlib.widgets.RadioButtons(ax, labels, active=0, activecolor=None, *, useblit=True, label_props=None, radio_props=None)[源代码][源代码]#

基类:AxesWidget

一个与图形用户界面无关的单选按钮。

为了保持按钮的响应性,您必须保留对此对象的引用。

使用 on_clicked 方法连接到 RadioButtons。

属性:
axAxes

小部件的父级 Axes。

activecolor颜色

所选按钮的颜色。

标签 : Text 的列表列表

按钮标签。

value_selectedstr

当前选中的按钮的标签文本。

index_selected整数

所选按钮的索引。

Axes 添加单选按钮。

参数:
axAxes

要添加按钮的轴。

标签list of str

按钮标签。

活跃整数

最初选中的按钮的索引。

activecolor颜色

所选按钮的颜色。如果此处或 radio_props 中未指定,则默认为 'blue'

useblitbool, 默认值: True

如果后端支持,使用blitting进行更快的绘图。详情请参阅教程 通过使用 blitting 实现更快的渲染

Added in version 3.7.

label_props字典或字典列表,可选

用于标签的 Text 属性字典。

Added in version 3.7.

radio_props字典,可选

用于单选按钮的散点 Collection 属性字典。默认为 (标签字体大小 / 2)**2 大小,黑色边缘颜色,以及 activecolor 面颜色(当激活时)。

备注

如果在 radio_props 中提供了 facecolor,它将覆盖 activecolor。这可以用于为每个按钮提供一个活动颜色。

Added in version 3.7.

property activecolor#

!! 由 numpydoc 处理 !!

clear()[源代码][源代码]#

将活动按钮重置为初始活动按钮。

disconnect(cid)[源代码][源代码]#

移除连接ID为 cid 的观察者。

on_clicked(func)[源代码][源代码]#

将回调函数 func 连接到按钮点击事件。

参数:
函数可调用

当按钮被点击时,使用按钮标签调用 func。当所有按钮都被清除时,使用 None 调用 func。回调函数 func 必须具有以下签名:

def func(label: str | None) -> Any

可能存在返回值,但会被忽略。

返回:
一个连接ID,可用于断开回调。
set_active(index)[源代码][源代码]#

选择带有编号 index 的按钮。

如果 eventson 为 True,回调将被触发。

参数:
索引整数

要激活的按钮的索引。

引发:
ValueError

如果索引无效。

set_label_props(props)[源代码][源代码]#

设置 Text 标签的属性。

Added in version 3.7.

参数:
属性dict

用于标签的 Text 属性字典。

set_radio_props(props)[源代码][源代码]#

设置 Text 标签的属性。

Added in version 3.7.

参数:
属性dict

用于单选按钮的 Collection 属性字典。

class matplotlib.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)[源代码][源代码]#

基类:SliderBase

一个表示浮点值范围的滑块。通过 val 属性定义范围的最小值和最大值,属性值为一个元组 (min, max)。

在 Axes ax 中创建一个滑块,定义一个包含在 [valmin, valmax] 范围内的值。为了使滑块保持响应,你必须维护对它的引用。调用 on_changed() 来连接滑块事件。

属性:
val浮点数元组

滑块值。

参数:
Axes

放置滑块的轴。

标签str

滑块标签。

valmin浮动

滑块的最小值。

valmax浮动

滑块的最大值。

valinit浮点数元组或 None,默认值:None

滑块的初始位置。如果为 None,初始位置将位于范围的第 25 和第 75 百分位。

valfmtstr, 默认值: None

%-format 字符串用于格式化滑块值。如果为 None,则使用 ScalarFormatter 代替。

closedminbool, 默认值: True

滑块区间是否在底部闭合。

closedmaxbool, 默认值: True

滑块区间是否在顶部闭合。

拖动bool, 默认值: True

如果为真,滑块可以用鼠标拖动。

valstepfloat, 默认值: None

如果指定,滑块将吸附到 valstep 的倍数。

方向{'horizontal', 'vertical'}, 默认: 'horizontal'

滑块的方向。

track_color : color, 默认值: 'lightgrey'颜色, 默认: 'lightgrey'

背景轨道的颜色。通过 track 属性可以进一步对轨道进行样式设置。

handle_styledict

滑块手柄的属性。默认值为

默认

描述

facecolor

颜色

'白色'

滑块手柄的表面颜色。

edgecolor

颜色

'.75'

滑块手柄的边缘颜色。

大小

整数

10

滑块手柄的大小,以点为单位。

其他值将被转换为 marker{foo} 并传递给 Line2D 构造函数。例如,handle_style = {'style'='x'} 将导致 markerstyle = 'x'

注释

额外的 kwargs 会被传递给 self.poly,这是绘制滑块旋钮的 Polygon。请参阅 Polygon 文档以获取有效的属性名称(facecoloredgecoloralpha 等)。

on_changed(func)[源代码][源代码]#

func 连接为滑块值变化的回调函数。

参数:
函数可调用

滑块更改时要调用的函数。该函数必须接受一个包含两个浮点数的2元组作为其参数。

返回:
整数

连接ID(可用于断开 func)。

set_max(max)[源代码][源代码]#

将滑块的下限值设置为 max

参数:
最大值浮动
set_min(min)[源代码][源代码]#

将滑块的下限值设置为 min

参数:
最小值浮动
set_val(val)[源代码][源代码]#

将滑块值设置为 val

参数:
val浮点数的元组或类似数组的序列
class matplotlib.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)[源代码][源代码]#

基类:_SelectorWidget

选择一个Axes的矩形区域。

为了使光标保持响应,您必须保持对它的引用。

在选择区域外的相同坐标处触发的按下和释放事件将清除选择器,除非 ignore_event_outside=True

参数:
axAxes

小部件的父级 Axes。

onselect函数, 可选

一个在释放事件发生后并且选择被创建、更改或移除时调用的回调函数。它必须具有以下签名:

def onselect(eclick: MouseEvent, erelease: MouseEvent)

其中 eclickerelease 是启动和完成选择的鼠标点击和释放 MouseEvent

minspanxfloat, 默认值: 0

x-span 小于或等于 minspanx 的选择将被移除(如果已经存在)或取消。

minspanyfloat, 默认值: 0

y-跨度小于或等于 minspanx 的选择将被移除(如果已存在)或取消。

useblitbool, 默认值: False

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

属性字典,可选

绘制矩形的属性。查看 Patch 以获取有效属性。默认值:

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

spancoordsdata, pixels,默认值:data

是否在数据或像素坐标中解释 minspanxminspany

按钮 : MouseButton, 列表的 MouseButton, 默认: 所有按钮MouseButton, MouseButton 列表, 默认: 所有按钮

触发矩形选择的按钮。

grab_rangefloat, 默认值: 10

交互工具手柄可以在其中被激活的像素距离。

handle_props字典,可选

用于绘制交互式句柄(标记艺术家)的属性。有关有效属性,请参见 Line2D 中的标记参数。默认值在 mpl.rcParams 中定义,除了 markeredgecolor 的默认值将与 props 中的 edgecolor 属性相同。

交互式bool, 默认值: False

是否绘制一组手柄,以便在绘制小部件后与之交互。

state_modifier_keys字典,可选

影响小部件行为的键盘修饰符。这些值会修改默认值,默认值为:

  • “移动”:移动现有形状,默认:无修饰符。

  • "clear": 清除当前形状,默认: "escape"。

  • "square": 使形状为方形,默认值为 "shift"。

  • "center": 围绕其中心改变形状,默认: "ctrl"。

  • "rotate": 将图形围绕其中心在 -45° 和 45° 之间旋转,默认值: "r"。

"square" 和 "center" 可以结合使用。正方形形状可以通过在创建选择器时指定的 use_data_coordinates 参数来定义为数据坐标或显示坐标。

drag_from_anywherebool, 默认值: False

如果 True,则可以通过点击其边界内的任何位置来移动小部件。

ignore_event_outsidebool, 默认值: False

如果 True,则将忽略在跨度选择器外部触发的事件。

use_data_coordinatesbool, 默认值: False

如果为 True,选择器的“方形”形状在数据坐标中定义,而不是在显示坐标中定义。

示例

>>> import matplotlib.pyplot as plt
>>> import matplotlib.widgets as mwidgets
>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3], [10, 50, 100])
>>> def onselect(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')

另请参阅: 矩形和椭圆选择器

property center#

数据坐标系中矩形的中心。

property corners#

数据坐标系中矩形的角,从左下角开始,按顺时针方向移动。

property edge_centers#

从左开始,逆时针移动的数据坐标中矩形边缘的中点。

property extents#

返回 (xmin, xmax, ymin, ymax) 在数据坐标中,这些坐标由旋转前的边界框定义。

property geometry#

返回一个形状为 (2, 5) 的数组,包含矩形的四个角的 x(RectangleSelector.geometry[1, :])和 y(RectangleSelector.geometry[0, :])数据坐标,起始和结束于左上角。

property rotation#

旋转角度在区间 [-45°, 45°] 内。旋转范围受限以保持实现简单。

class matplotlib.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)[源代码][源代码]#

基类:SliderBase

一个表示浮点数范围的滑块。

在 Axes ax 中创建一个从 valminvalmax 的滑块。为了使滑块保持响应,你必须维护对它的引用。调用 on_changed() 来连接滑块事件。

属性:
val浮动

滑块值。

参数:
Axes

放置滑块的轴。

标签str

滑块标签。

valmin浮动

滑块的最小值。

valmax浮动

滑块的最大值。

valinitfloat, 默认值: 0.5

滑块的初始位置。

valfmtstr, 默认值: None

%-格式字符串用于格式化滑块值。如果为 None,则使用 ScalarFormatter

closedminbool, 默认值: True

滑块区间是否在底部闭合。

closedmaxbool, 默认值: True

滑块区间是否在顶部闭合。

slidermin滑块,默认值:无

不允许当前滑块的值小于滑块 slidermin 的值。

slidermax滑块,默认值:无

不允许当前滑块的值大于滑块 slidermax 的值。

拖动bool, 默认值: True

如果为真,滑块可以用鼠标拖动。

valstep浮点数或类似数组的对象,默认值:None

如果是一个浮点数,滑块将吸附到 valstep 的倍数。如果是一个数组,滑块将吸附到数组中的值。

方向{'horizontal', 'vertical'}, 默认: 'horizontal'

滑块的方向。

initcolor : color, 默认值: 'r'颜色,默认值:'r'

valinit 位置的线条颜色。设置为 'none' 则不显示线条。

track_color : color, 默认值: 'lightgrey'颜色, 默认: 'lightgrey'

背景轨道的颜色。通过 track 属性可以进一步对轨道进行样式设置。

handle_styledict

滑块手柄的属性。默认值为

默认

描述

facecolor

颜色

'白色'

滑块手柄的表面颜色。

edgecolor

颜色

'.75'

滑块手柄的边缘颜色。

大小

整数

10

滑块手柄的大小,以点为单位。

其他值将被转换为 marker{foo} 并传递给 Line2D 构造函数。例如,handle_style = {'style'='x'} 将导致 markerstyle = 'x'

注释

额外的 kwargs 会被传递给 self.poly,这是绘制滑块旋钮的 Rectangle。请参阅 Rectangle 文档以获取有效的属性名称(facecoloredgecoloralpha 等)。

on_changed(func)[源代码][源代码]#

func 连接为滑块值变化的回调函数。

参数:
函数可调用

滑块更改时要调用的函数。该函数必须接受一个浮点数作为其参数。

返回:
整数

连接ID(可用于断开 func)。

set_val(val)[源代码][源代码]#

将滑块值设置为 val

参数:
val浮动
class matplotlib.widgets.SliderBase(ax, orientation, closedmin, closedmax, valmin, valmax, valfmt, dragging, valstep)[源代码][源代码]#

基类:AxesWidget

用于构建滑块小部件的基类。不建议直接使用。

为了使滑块保持响应,您必须保持对它的引用。

disconnect(cid)[源代码][源代码]#

移除连接ID为 cid 的观察者。

参数:
cid整数

要移除的观察者的连接ID。

reset()[源代码][源代码]#

将滑块重置为初始值。

class matplotlib.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)[源代码][源代码]#

基类:_SelectorWidget

在单个轴上视觉选择一个最小/最大范围,并使用这些值调用一个函数。

为了保证选择器保持响应,请保留对它的引用。

要关闭 SpanSelector,请将 span_selector.active 设置为 False。要重新启用它,请将其设置为 True。

在选择区域外的相同坐标处触发的按下和释放事件将清除选择器,除非 ignore_event_outside=True

参数:
axAxes
onselect : 具有签名 func(min: float, max: float) 的可调用对象具有签名的可调用对象

在释放事件发生后,并且选择被创建、更改或移除时调用的回调函数。

方向{"水平", "垂直"}

绘制跨度选择器的方向。

minspanfloat, 默认值: 0

如果选择范围小于或等于 minspan,则选择将被移除(如果已存在)或取消。

useblitbool, 默认值: False

如果为真,使用依赖于后端的blitting特性以加快画布更新。详情请参阅教程 通过使用 blitting 实现更快的渲染

属性dict, 默认值: {'facecolor': 'red', 'alpha': 0.5}

Patch 属性的字典。

onmove_callback : 具有 func(min: float, max: float) 签名的可调用对象,可选具有签名的可调用对象

在选择跨度时,鼠标移动时调用。

交互式bool, 默认值: False

是否绘制一组手柄,以便在绘制小部件后与之交互。

按钮 : MouseButtonMouseButton 列表,默认: 所有按钮MouseButton 或 MouseButton 列表,默认:所有按钮

激活范围选择器的鼠标按钮。

handle_propsdict, 默认: None

跨度边缘的句柄线的属性。仅在 interactive 为 True 时使用。有关有效属性,请参见 Line2D

grab_rangefloat, 默认值: 10

交互工具手柄可以在其中被激活的像素距离。

state_modifier_keys字典,可选

影响小部件行为的键盘修饰符。这些值会修改默认值,默认值为:

  • "clear": 清除当前形状,默认: "escape"。

drag_from_anywherebool, 默认值: False

如果 True,则可以通过点击其边界内的任何位置来移动小部件。

ignore_event_outsidebool, 默认值: False

如果 True,则将忽略在跨度选择器外部触发的事件。

snap_values一维数组类,可选

将选择器的边缘对齐到给定的值。

示例

>>> import matplotlib.pyplot as plt
>>> import matplotlib.widgets as mwidgets
>>> fig, ax = plt.subplots()
>>> ax.plot([1, 2, 3], [10, 50, 100])
>>> def onselect(vmin, vmax):
...     print(vmin, vmax)
>>> span = mwidgets.SpanSelector(ax, onselect, 'horizontal',
...                              props=dict(facecolor='blue', alpha=0.5))
>>> fig.show()

另见: Span Selector

connect_default_events()[源代码][源代码]#

将主要画布事件连接到方法。

property direction#

'垂直' 或 '水平'。

类型:

跨度选择器的方向

property extents#
(浮点数, 浮点数)

当前选择的起始点和结束点的数据坐标值。如果没有选择,起始值和结束值将是相同的。

new_axes(ax, *, _props=None, _init=False)[源代码][源代码]#

设置 SpanSelector 在新 Axes 上操作。

class matplotlib.widgets.SubplotTool(targetfig, toolfig)[源代码][源代码]#

基类:Widget

一个用于调整 Figure 子图参数的工具。

参数:
targetfig

要调整的图形实例。

toolfig

要嵌入子图工具的图形实例。

class matplotlib.widgets.TextBox(ax, label, initial='', *, color='.95', hovercolor='1', label_pad=0.01, textalignment='left')[源代码][源代码]#

基类:AxesWidget

一个与图形用户界面无关的文本输入框。

为了使文本框保持响应,您必须保留对它的引用。

调用 on_text_change 以便在文本更改时更新。

调用 on_submit 以便在用户按下回车键或离开文本输入框时更新。

属性:
axAxes

小部件的父级 Axes。

标签 : Text文本
颜色 : color颜色

未悬停时的文本框颜色。

hovercolor颜色

悬停时文本框的颜色。

参数:
axAxes

按钮将被放置的 Axes 实例。

标签str

此文本框的标签。

初始str

文本框中的初始值。

颜色 : color颜色

盒子的颜色。

hovercolor颜色

当鼠标悬停时盒子的颜色。

label_pad浮动

标签与文本框右侧之间的距离。

文本对齐{'left', 'center', 'right'}

文本的水平位置。

begin_typing()[源代码][源代码]#
disconnect(cid)[源代码][源代码]#

移除连接ID为 cid 的观察者。

on_submit(func)[源代码][源代码]#

当用户按下回车键或离开提交框时,使用事件调用此 func

返回一个连接ID,可用于断开连接。

on_text_change(func)[源代码][源代码]#

当文本发生变化时,使用事件调用此 func

返回一个连接ID,可用于断开连接。

set_val(val)[源代码][源代码]#
stop_typing()[源代码][源代码]#
property text#

!! 由 numpydoc 处理 !!

class matplotlib.widgets.ToolHandles(ax, x, y, *, marker='o', marker_props=None, useblit=True)[源代码][源代码]#

基类:object

画布工具的控制手柄。

参数:
axAxes

显示工具手柄的 Matplotlib Axes。

x, y一维数组

控制手柄的坐标。

标记str, 默认值: 'o'

用于显示手柄的标记形状。参见 plot

marker_props字典,可选

附加的标记属性。参见 Line2D

useblitbool, 默认值: True

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

property artists#

!! 由 numpydoc 处理 !!

closest(x, y)[源代码][源代码]#

返回最接近索引的索引和像素距离。

set_animated(val)[源代码][源代码]#
set_data(pts, y=None)[源代码][源代码]#

设置手柄的 x 和 y 位置。

set_visible(val)[源代码][源代码]#
property x#

!! 由 numpydoc 处理 !!

property y#

!! 由 numpydoc 处理 !!

class matplotlib.widgets.ToolLineHandles(ax, positions, direction, *, line_props=None, useblit=True)[源代码][源代码]#

基类:object

画布工具的控制手柄。

参数:
axAxes

显示工具手柄的 Matplotlib Axes。

职位一维数组

数据坐标中的手柄位置。

方向{"水平", "垂直"}

手柄的方向,可以是 '垂直' 或 '水平'

line_props字典,可选

附加的线条属性。参见 Line2D

useblitbool, 默认值: True

是否使用blitting以实现更快的绘图(如果后端支持)。详情请参阅教程 通过使用 blitting 实现更快的渲染

property artists#

!! 由 numpydoc 处理 !!

closest(x, y)[源代码][源代码]#

返回索引和到最近手柄的像素距离。

参数:
x, y浮动

x, y 位置,从该位置计算距离以确定最近的把手

返回:
索引, 距离手柄的索引及其距离

位置 x, y

property direction#

'垂直' 或 '水平'。

类型:

把手方向

property positions#

数据坐标中手柄的位置。

remove()[源代码][源代码]#

从图形中移除句柄艺术家。

set_animated(value)[源代码][源代码]#

设置手柄艺术家的动画状态。

set_data(positions)[源代码][源代码]#

根据线条是垂直还是水平,设置手柄的 x 或 y 位置。

参数:
职位长度为2的元组

设置手柄在数据坐标中的位置

set_visible(value)[源代码][源代码]#

设置手柄艺术家的可见状态。

class matplotlib.widgets.Widget[源代码][源代码]#

基类:object

GUI 中立小部件的抽象基类。

property active#

小部件是否处于活动状态?

drawon = True#
eventson = True#
get_active()[源代码][源代码]#

获取小部件是否处于活动状态。

ignore(event)[源代码][源代码]#

返回是否应忽略 event

此方法应在任何事件回调的开头调用。

set_active(active)[源代码][源代码]#

设置小部件是否处于活动状态。