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 에게 문의하십시오. 세션 후 피드백을 제공해주시면 즉시 문제를 해결해 드리겠습니다.

필요한 라이브러리 가져오기

먼저, NumPy 와 Matplotlib 과 같은 필요한 라이브러리를 가져와야 합니다.

import matplotlib.pyplot as plt
import numpy as np

데이터 준비

NumPy 를 사용하여 서로 다른 주파수를 가진 두 개의 사인파를 생성합니다.

t = np.linspace(0, 1)
y1 = 2 * np.sin(2*np.pi*t)
y2 = 4 * np.sin(2*np.pi*2*t)

Figure 및 Axes 생성

Matplotlib 을 사용하여 figure 와 axes 를 생성하고 플롯의 제목을 설정합니다.

fig, ax = plt.subplots()
ax.set_title('Click on legend line to toggle line on/off')

선 및 범례 생성

Matplotlib 을 사용하여 두 개의 선과 범례를 생성합니다.

line1, = ax.plot(t, y1, lw=2, label='1 Hz')
line2, = ax.plot(t, y2, lw=2, label='2 Hz')
leg = ax.legend(fancybox=True, shadow=True)

범례 선을 원래 선에 매핑

사전을 사용하여 범례 선을 원래 선에 매핑합니다.

lines = [line1, line2]
lined = {}  ## Will map legend lines to original lines.
for legline, origline in zip(leg.get_lines(), lines):
    legline.set_picker(True)  ## Enable picking on the legend line.
    lined[legline] = origline

On Pick 이벤트 함수 정의

범례 프록시 선에 해당하는 원래 선의 가시성을 토글하는 on pick 이벤트 함수를 정의합니다.

def on_pick(event):
    ## On the pick event, find the original line corresponding to the legend
    ## proxy line, and toggle its visibility.
    legline = event.artist
    origline = lined[legline]
    visible = not origline.get_visible()
    origline.set_visible(visible)
    ## Change the alpha on the line in the legend, so we can see what lines
    ## have been toggled.
    legline.set_alpha(1.0 if visible else 0.2)
    fig.canvas.draw()

On Pick 이벤트 함수를 캔버스에 연결

on pick 이벤트 함수를 캔버스에 연결합니다.

fig.canvas.mpl_connect('pick_event', on_pick)

플롯 표시

Matplotlib 을 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 을 사용하여 범례에서 선택 (picking) 을 활성화하여 원래 선을 켜고 끄는 방법을 배웠습니다. 그림 (figure) 과 축 (axes) 을 생성하고, 데이터를 준비하고, 선과 범례를 만들고, 범례 선을 원래 선에 매핑하고, on pick 이벤트 함수를 정의하고, on pick 이벤트 함수를 캔버스에 연결하고, 플롯을 표시했습니다.