Matplotlib 플롯과의 마우스 상호 작용

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩은 Python 의 Matplotlib 라이브러리를 사용하여 이동 및 클릭 이벤트를 연결하여 플로팅 캔버스와 상호 작용하는 방법을 보여주는 예시입니다. Matplotlib 는 사용자가 Python 에서 정적, 애니메이션 및 대화형 시각화를 생성할 수 있도록 하는 데이터 시각화 라이브러리입니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접근하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 즉시 문제를 해결해 드리겠습니다.

사인파 플롯 생성

먼저, numpy 와 matplotlib 라이브러리를 사용하여 사인파 플롯을 생성해야 합니다.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)

마우스 이동 이벤트

motion_notify_event 메서드를 사용하여 마우스 이동 이벤트에 연결할 수 있습니다. 이 예제에서는 마우스가 플롯 위로 이동할 때 x 및 y 데이터 좌표와 x 및 y 픽셀 좌표를 출력합니다.

def on_move(event):
    if event.inaxes:
        print(f'data coords {event.xdata} {event.ydata},',
              f'pixel coords {event.x} {event.y}')

binding_id = plt.connect('motion_notify_event', on_move)

마우스 클릭 이벤트

button_press_event 메서드를 사용하여 마우스 클릭 이벤트에 연결할 수 있습니다. 이 예제에서는 왼쪽 마우스 버튼을 클릭하면 마우스 이동 이벤트 콜백을 연결 해제합니다.

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('disconnecting callback')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

플롯 표시

마지막으로, show 메서드를 사용하여 플롯을 표시해야 합니다.

plt.show()

요약

이 랩에서는 마우스 이동 및 클릭 이벤트를 사용하여 Matplotlib 플롯과 상호 작용하는 방법을 시연했습니다. 이러한 이벤트에 연결함으로써 마우스 포인터의 좌표를 출력하고, 콜백을 연결 해제하는 등 다양한 작업을 수행할 수 있습니다. 이 기술은 Python 에서 대화형 시각화를 만드는 데 유용할 수 있습니다.