Matplotlib 라디오 버튼을 이용한 사인파 시각화

Beginner

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

소개

라디오 버튼은 사용자가 미리 정의된 옵션 그룹에서 하나의 옵션을 선택할 수 있도록 하는 입력 요소 유형입니다. 이 랩에서는 matplotlib 라이브러리를 사용하여 사용자가 플롯에 표시할 다양한 사인파 중에서 선택할 수 있는 라디오 버튼이 있는 시각화를 생성합니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

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

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

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

이 랩에 필요한 라이브러리인 numpymatplotlib를 가져오는 것으로 시작합니다.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.widgets import RadioButtons

데이터 생성

다음으로, 플롯에 사용될 데이터를 생성합니다. numpy 라이브러리를 사용하여 서로 다른 주파수를 가진 세 개의 서로 다른 사인파를 생성합니다.

t = np.arange(0.0, 2.0, 0.01)
s0 = np.sin(2*np.pi*t)
s1 = np.sin(4*np.pi*t)
s2 = np.sin(8*np.pi*t)

플롯 및 라디오 버튼 생성

이제 플롯과 라디오 버튼을 생성합니다. subplots() 함수를 사용하여 플롯을 생성하고, RadioButtons() 함수를 사용하여 라디오 버튼을 생성합니다.

fig, ax = plt.subplots()
l, = ax.plot(t, s0, lw=2, color='red')
fig.subplots_adjust(left=0.3)

axcolor = 'lightgoldenrodyellow'
rax = fig.add_axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('1 Hz', '2 Hz', '4 Hz'),
                     label_props={'color': 'cmy', 'fontsize': [12, 14, 16]},
                     radio_props={'s': [16, 32, 64]})

라디오 버튼에 기능 추가

이제 on_clicked() 함수를 사용하여 라디오 버튼에 기능을 추가합니다. 라디오 버튼이 클릭될 때 호출될 hzfunc()colorfunc() 두 개의 함수를 정의합니다.

def hzfunc(label):
    hzdict = {'1 Hz': s0, '2 Hz': s1, '4 Hz': s2}
    ydata = hzdict[label]
    l.set_ydata(ydata)
    fig.canvas.draw()
radio.on_clicked(hzfunc)

rax = fig.add_axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
radio2 = RadioButtons(
    rax, ('red', 'blue', 'green'),
    label_props={'color': ['red', 'blue', 'green']},
    radio_props={
        'facecolor': ['red', 'blue', 'green'],
        'edgecolor': ['darkred', 'darkblue', 'darkgreen'],
    })


def colorfunc(label):
    l.set_color(label)
    fig.canvas.draw()
radio2.on_clicked(colorfunc)

rax = fig.add_axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
radio3 = RadioButtons(rax, ('-', '--', '-.', ':'))


def stylefunc(label):
    l.set_linestyle(label)
    fig.canvas.draw()
radio3.on_clicked(stylefunc)

플롯 표시

마지막으로, show() 함수를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 matplotlib 라이브러리를 사용하여 라디오 버튼으로 시각화를 만드는 방법을 배웠습니다. 라디오 버튼을 사용하여 사용자가 플롯에 표시할 다양한 사인파 중에서 선택할 수 있도록 했습니다. 또한 버튼을 클릭했을 때 호출되는 함수를 정의하여 라디오 버튼에 기능을 추가했습니다. 전반적으로 이 랩은 라디오 버튼을 사용하여 사용자가 데이터의 다양한 측면을 탐색할 수 있는 대화형 시각화를 만드는 방법을 보여주었습니다.