matplotlib.widgets.RectangleSelector#
- 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。- 参数:
- ax
Axes 组件的父级 Axes 对象。
- onselect函数,可选
回调函数,在释放事件发生后以及选择创建、更改或删除时被调用。它必须具有以下签名
def onselect(eclick: MouseEvent, erelease: MouseEvent)
其中 eclick 和 erelease 分别是启动和完成选择的鼠标点击和释放
MouseEvent。- minspanx浮点数,默认:0
x 跨度小于或等于 minspanx 的选择将被移除(如果已存在)或取消。
- minspany浮点数,默认:0
y 跨度小于或等于 minspany 的选择将被移除(如果已存在)或取消。
- useblitbool, 默认值: False
是否使用位块传输(blitting)以加快绘图速度(如果后端支持)。详细信息请参阅教程 通过位块传输实现更快的渲染。
- props字典,可选
绘制矩形时使用的属性。有关有效属性,请参阅
Patch。默认值为dict(facecolor='red', edgecolor='black', alpha=0.2, fill=True)- spancoords{"data", "pixels"},默认:"data"
是否在数据坐标系或像素坐标系中解释 minspanx 和 minspany。
- button
MouseButton,MouseButton的列表,默认:所有按钮 触发矩形选择的按钮。
- grab_rangefloat, 默认值: 10
激活交互工具句柄的像素距离。
- handle_propsdict, 可选
绘制交互式手柄(标记艺术家)时使用的属性。有关有效属性,请参阅
Line2D中的标记参数。除markeredgecolor的默认值(将与 props 中的edgecolor属性相同)外,默认值均在mpl.rcParams中定义。- interactivebool, 默认值: False
是否绘制一组允许在绘制后与小部件进行交互的句柄。
- state_modifier_keysdict, 可选
影响小部件行为的键盘修饰键。值会修改默认设置,默认设置为:
"move":移动现有形状,默认:无修饰键。
"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_coordinates布尔值,默认:False
如果为
True,选择器的“正方形”形状定义为数据坐标而非显示坐标。
- ax
示例
>>> 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°]。为保持实现简洁,旋转范围受限。