Введение
В этом практическом занятии мы научимся включать возможность выбора на легенде для переключения исходной линии вкл/выкл с использованием Python Matplotlib.
Советы по работе с ВМ
После завершения запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку 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)
Создаем фигуру и оси
Мы создадим фигуру и оси с использованием Matplotlib и зададим заголовок графика.
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 = {} ## Будет сопоставлять линии легенды с исходными линиями.
for legline, origline in zip(leg.get_lines(), lines):
legline.set_picker(True) ## Включает выделение по линии легенды.
lined[legline] = origline
Определяем функцию для события выбора
Мы определим функцию для события выбора, которая будет переключать видимость исходной линии, соответствующей линии-заместителю легенды.
def on_pick(event):
## При событии выбора найти исходную линию, соответствующую линии-заместителю легенды,
## и переключить ее видимость.
legline = event.artist
origline = lined[legline]
visible = not origline.get_visible()
origline.set_visible(visible)
## Изменить альфа-значение линии в легенде, чтобы мы могли видеть, какие линии
## были переключены.
legline.set_alpha(1.0 if visible else 0.2)
fig.canvas.draw()
Подключаем функцию для события выбора к холсту
Мы подключим функцию для события выбора к холсту.
fig.canvas.mpl_connect('pick_event', on_pick)
Показываем график
Мы покажем график с использованием Matplotlib.
plt.show()
Резюме
В этом практическом занятии мы узнали, как включить выделение по легенде для переключения исходной линии вкл/выкл с использованием Python и Matplotlib. Мы создали фигуру и оси, подготовили данные, создали линии и легенду, сопоставили линии легенды с исходными линиями, определили функцию для события выбора, подключили функцию для события выбора к холсту и показали график.