matplotlib 위 젯 의 사각형 선택 영역(RectangleSelector)구현
4669 단어 matplotlib직사각형 선택 영역
직사각형 선택 영역 은 흔히 볼 수 있 는 대상 선택 방식 입 니 다.이 명 사 는 Photoshop 에서 가장 흔히 볼 수 있 습 니 다.키 맵 에서 마우스 가 드래그 하 는 사각형 영역 에 있 는 요 소 를 선택 하 는 데 사 용 됩 니 다.matplotlib 의 사각형 선택 영역 은 위 젯(widgets)에 속 합 니 다.matplotlib 의 위 젯 은 모두 중성(neutral)입 니 다.즉,구체 적 인 백 엔 드 구현 과 무관 합 니 다.
직사각형 선택 영역 은 matplotlib.widgets.RectangleSelector 클래스 로 정의 되 며,계승 관 계 는:Widget->AxesWidget->SelectorWidget->RectangleSelector。
RectangleSelector 클래스 의 서명 은 class matplotlib.widgets.RectangleSelector(ax,onselect,drawtype='box',minspanx=0,minspany=0,useblit=False,lineprops=None,rectpps=None,spancoords='data',button=None,maxist=10,markerprops=None, interactive=False, state_modifier_keys=None)
RectangleSelector 클래스 구조 함수 의 매개 변 수 는:
공식 사례
사례 설명
마 우 스 를 드래그 하여 직사각형 선택 영역 을 그립 니 다.기본 값 은 대화 모드 입 니 다.선택 영역 상 자 를 표시 하고 esc 키 를 누 르 면 선택 영역 을 취소 합 니 다.콘 솔 은 선택 영역의 좌표 와 사용 하 는 마우스 키 를 표시 합 니 다.t 키 를 누 르 면 사각형 선택 기능 의 활성화 상 태 를 전환 합 니 다.비 활성화 상태 사각형 선택 기능 은 유효 하지 않 습 니 다.
콘 솔 출력:
(0.74, -0.38) --> (8.90, 0.75)
The buttons you used were: 1 1
코드 분석
from matplotlib.widgets import RectangleSelector
import numpy as np
import matplotlib.pyplot as plt
#
def line_select_callback(eclick, erelease):
"""
Callback for line selection.
*eclick* and *erelease* are the press and release events.
"""
x1, y1 = eclick.xdata, eclick.ydata
x2, y2 = erelease.xdata, erelease.ydata
print(f"({x1:3.2f}, {y1:3.2f}) --> ({x2:3.2f}, {y2:3.2f})")
print(f" The buttons you used were: {eclick.button} {erelease.button}")
# ,active set_active _SelectorWidget
def toggle_selector(event):
print(' Key pressed.')
if event.key == 't':
if RS.active:
print(' RectangleSelector deactivated.')
RS.set_active(False)
else:
print(' RectangleSelector activated.')
RS.set_active(True)
#
fig, ax = plt.subplots()
N = 100000 # If N is large one can see improvement by using blitting.
x = np.linspace(0, 10, N)
ax.plot(x, np.sin(2*np.pi*x)) # plot something
ax.set_title(
"Click and drag to draw a rectangle.
"
"Press 't' to toggle the selector on and off.")
# , , ,
# drawtype is 'box' or 'line' or 'none'
RS = RectangleSelector(ax, line_select_callback,
drawtype='box', useblit=True,
button=[1, 3], # disable middle button
minspanx=5, minspany=5,
spancoords='pixels',
interactive=True)
# ,
fig.canvas.mpl_connect('key_press_event', toggle_selector)
plt.show()
matplotlib 위 젯 의 사각형 선택 영역(RectangleSelector)의 실현 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 matplotlib 사각형 선택 영역 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
「수리계획법~선형계획법~」을 참고로 matplotlib와 WolframAlpha로 해보고 싶다.(오리지널 포스트) (참고) 선형 계획법 초입문 작업 중입니다. 정수에만 대응합니다. 공부중. 쉽게 3D 표시할 수 있습니까? 조언을 받으면 도움이됩니다. 완성형?을 찾고 있습니다. 잘 부탁드립니다. 정수해: {{x...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.