matplotlib.widgets.SpanSelector#

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)[source]#

基类: _SelectorWidget

在单个坐标轴上直观地选择一个最小/最大范围,并使用这些值调用函数。

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

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

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

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

一个回调函数,在释放事件发生且选择范围被创建、更改或移除后调用。

direction{"horizontal", "vertical"}

绘制范围选择器的方向。

minspan浮点数,默认值:0

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

useblitbool, 默认值: False

如果为 True,则使用后端相关的位块传输(blitting)功能以实现更快的画布更新。详情请参阅教程 使用位块传输(blitting)实现更快的渲染

props字典,默认值:{'facecolor': 'red', 'alpha': 0.5}

Patch 属性字典。

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

在选择范围过程中鼠标移动时调用。

interactivebool, 默认值: False

是否绘制一组允许在绘制后与小部件进行交互的句柄。

buttonMouseButtonMouseButton 列表,默认值:所有按钮

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

handle_props字典,默认值:None

范围边缘处手柄线条的属性。仅在 interactive 为 True 时使用。有效属性请参阅 Line2D

grab_rangefloat, 默认值: 10

激活交互工具句柄的像素距离。

state_modifier_keysdict, 可选

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

  • "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()[source]#

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

property direction#

范围选择器的方向:'vertical'(垂直)或 'horizontal'(水平)。

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

当前选择范围的起始点和结束点(以数据坐标表示)。如果没有进行选择,起始值和结束值将相同。

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

设置 SpanSelector 在新的坐标轴(Axes)上运行。

使用 matplotlib.widgets.SpanSelector 的示例#

跨度选择器

跨度选择器