當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python matplotlib RectangleSelector用法及代碼示例


本文簡要介紹 python 語言中 matplotlib.widgets.RectangleSelector 的用法。

用法

class matplotlib.widgets.RectangleSelector(ax, onselect, *, 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

選擇軸的矩形區域。

要使光標保持響應,您必須保留對它的引用。

在選擇之外的相同坐標處觸發的按下和釋放事件將清除選擇器,但 ignore_event_outside=True 除外。

參數
ax Axes

小部件的父軸。

onselect 函數

在發布事件和創建、更改或刪除選擇之後調用的回調函數。它必須有簽名:

def onselect(eclick: MouseEvent, erelease: MouseEvent)

其中 eclickerelease 是鼠標單擊並釋放 MouseEvent 開始和完成選擇。

minspanx 浮點數,默認值:0

x-span 小於或等於 minspanx 的選擇將被刪除(當已經存在時)或取消。

minspany 浮點數,默認值:0

y-span 小於或等於 minspanx 的選擇將被刪除(當已經存在時)或取消。

useblit 布爾值,默認值:假

是否使用位塊傳輸來加快繪製速度(如果後端支持)。有關詳細信息,請參閱教程使用位圖傳輸加快渲染速度。

props 字典,可選

繪製矩形的屬性。有關有效屬性,請參閱 Patch 。默認:

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

spancoords {"data", "pixels"},默認:"data"

是否在數據或像素坐標中解釋 minspanxminspany

button MouseButton MouseButton 列表,默認值:所有按鈕

觸發矩形選擇的按鈕。

grab_range 浮點數,默認值:10

可以激活交互式工具手柄的距離(以像素為單位)。

handle_props 字典,可選

繪製交互式句柄(標記藝術家)的屬性。有關有效屬性,請參閱 Line2D 中的標記參數。默認值在 mpl.rcParams 中定義,但 markeredgecolor 的默認值與 props 中的 edgecolor 屬性相同。

interactive 布爾值,默認值:假

是否繪製一組允許在繪製後與小部件交互的句柄。

state_modifier_keys 字典,可選

影響小部件行為的鍵盤修飾符。值修改了默認值,它們是:

  • "move":移動現有形狀,默認:無修飾符。

  • "clear":清除當前形狀,默認:"escape"。

  • "square":使形狀為正方形,默認:"shift"。

  • "center":改變中心周圍的形狀,默認:"ctrl"。

  • "rotate":圍繞中心在-45°和45°之間旋轉形狀,默認值:"r"。

"square" 和 "center" 可以組合。正方形可以在數據或顯示坐標中定義,由創建選擇器時指定的 use_data_coordinates 參數確定。

drag_from_anywhere 布爾值,默認值:假

如果 True ,則可以通過單擊其範圍內的任意位置來移動小部件。

ignore_event_outside 布爾值,默認值:假

如果 True ,在跨度選擇器之外觸發的事件將被忽略。

use_data_coordinates 布爾值,默認值:假

如果 True ,則選擇器的 "square" 形狀是在數據坐標而不是顯示坐標中定義的。

例子

>>> 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')

另請參閱:矩形和橢圓選擇器

相關用法


注:本文由純淨天空篩選整理自skytowner.com大神的英文原創作品 matplotlib.widgets.RectangleSelector。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。