Введение
В этом уроке мы узнаем, как создать интерактивную диаграмму с текстовым полем с использованием Matplotlib. Виджет Textbox позволяет пользователям вводить текст, который обновляет диаграмму в режиме реального времени.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импортируем необходимые библиотеки
Сначала нам нужно импортировать необходимые библиотеки. Мы будем использовать NumPy и Matplotlib для создания диаграммы и виджета Textbox.
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
Мы создаем виджет Textbox и добавляем его на рисунок. Метод on_submit используется для вызова функции submit, когда пользователь нажимает клавишу Enter в текстовом поле или покидает его. Мы также задаем начальное значение виджета Textbox равным 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 и отобразили диаграмму для пользователя. С этими знаниями вы можете создать собственные интерактивные диаграммы с вводом пользователя.