텍스트 상자를 이용한 대화형 플롯

Beginner

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

소개

이 튜토리얼에서는 Matplotlib 을 사용하여 텍스트 상자가 있는 대화형 플롯을 만드는 방법을 배웁니다. Textbox 위젯을 사용하면 사용자가 텍스트 입력을 제공할 수 있으며, 이는 실시간으로 플롯을 업데이트합니다.

VM 팁

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

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

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

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

먼저, 필요한 라이브러리를 가져와야 합니다. 플롯과 Textbox 위젯을 만들기 위해 NumPy 와 Matplotlib 을 사용합니다.

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import TextBox

초기 플롯 생성

다음으로, 사용자의 입력에 따라 업데이트될 초기 플롯을 생성합니다. 이 예제에서는 독립 변수 t를 사용하여 함수의 플롯을 생성합니다.

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)

t = np.arange(-2.0, 2.0, 0.001)
l, = ax.plot(t, np.zeros_like(t), lw=2)

Submit 함수 정의

사용자가 텍스트 입력을 제출할 때 호출될 submit 함수를 정의합니다. 이 함수는 사용자의 입력을 기반으로 플롯된 함수를 업데이트합니다.

def submit(expression):
    """
    Update the plotted function to the new math *expression*.

    *expression* is a string using "t" as its independent variable, e.g.
    "t ** 3".
    """
    ydata = eval(expression, {'np': np}, {'t': t})
    l.set_ydata(ydata)
    ax.relim()
    ax.autoscale_view()
    plt.draw()

텍스트 상자 위젯 생성

텍스트 상자 (Textbox) 위젯을 생성하여 그림에 추가합니다. on_submit 메서드는 사용자가 텍스트 상자에서 Enter 키를 누르거나 텍스트 상자를 벗어날 때 submit 함수를 트리거하는 데 사용됩니다. 또한 텍스트 상자 위젯의 초기 값을 t ** 2로 설정합니다.

axbox = fig.add_axes([0.1, 0.05, 0.8, 0.075])
text_box = TextBox(axbox, "Evaluate", textalignment="center")
text_box.on_submit(submit)
text_box.set_val("t ** 2")  ## Trigger `submit` with the initial string.

플롯 표시

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

plt.show()

요약

이 튜토리얼에서는 Matplotlib 을 사용하여 텍스트 상자가 있는 대화형 플롯을 만드는 방법을 배웠습니다. 초기 플롯을 생성하고, 플롯을 업데이트하는 submit 함수를 정의하고, 텍스트 상자 (Textbox) 위젯을 생성한 다음, 사용자에게 플롯을 표시했습니다. 이 지식을 통해 사용자 입력을 사용하여 자신만의 대화형 플롯을 만들 수 있습니다.