소개
이 튜토리얼에서는 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) 위젯을 생성한 다음, 사용자에게 플롯을 표시했습니다. 이 지식을 통해 사용자 입력을 사용하여 자신만의 대화형 플롯을 만들 수 있습니다.