Matplotlib 이벤트 처리 튜토리얼

Beginner

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

소개

이 랩은 Python Matplotlib 에서 마우스 클릭과 같은 한 창의 이벤트를 다른 그림 창에 연결하는 방법에 대한 단계별 튜토리얼입니다.

VM 팁

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

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

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

환경 설정

먼저, Python 환경을 설정하고 필요한 라이브러리를 가져와야 합니다.

import matplotlib.pyplot as plt
import numpy as np

## Fixing random state for reproducibility
np.random.seed(19680801)

figsrc, axsrc = plt.subplots(figsize=(3.7, 3.7))
figzoom, axzoom = plt.subplots(figsize=(3.7, 3.7))
axsrc.set(xlim=(0, 1), ylim=(0, 1), autoscale_on=False,
          title='Click to zoom')
axzoom.set(xlim=(0.45, 0.55), ylim=(0.4, 0.6), autoscale_on=False,
           title='Zoom window')

x, y, s, c = np.random.rand(4, 200)
s *= 200

axsrc.scatter(x, y, s, c)
axzoom.scatter(x, y, s, c)

on_press 함수 정의

다음으로, 첫 번째 창에서 마우스 클릭 위치를 기반으로 두 번째 창의 x 및 y 제한을 조정하는 on_press라는 함수를 정의합니다.

def on_press(event):
    if event.button != 1:
        return
    x, y = event.xdata, event.ydata
    axzoom.set_xlim(x - 0.1, x + 0.1)
    axzoom.set_ylim(y - 0.1, y + 0.1)
    figzoom.canvas.draw()

이벤트와 함수 연결

이제 첫 번째 창에서 버튼 누름 (button press) 이벤트를 방금 정의한 on_press 함수에 연결합니다.

figsrc.canvas.mpl_connect('button_press_event', on_press)

플롯 표시

마지막으로, 사용자에게 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 에서 마우스 클릭과 같은 한 창의 이벤트를 다른 figure 창에 연결하는 방법을 배웠습니다. 또한 첫 번째 창에서 마우스 클릭 위치를 기반으로 두 번째 창의 범위를 조정하는 함수를 정의하고, 버튼 누름 (button press) 이벤트를 이 함수에 연결하는 방법도 배웠습니다.