События входа/выхода в фигуру и оси Matplotlib

Beginner

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

Введение

Matplotlib - это библиотека визуализации данных для Python. Она предлагает различные инструменты для создания статических, анимированных и интерактивных визуализаций в Python. Одной из интерактивных функций Matplotlib является возможность определять, когда указатель мыши входит в и выходит из фигуры или оси. В этом практическом занятии мы узнаем, как использовать события входа/выхода в фигуру и оси Matplotlib для изменения цветов рамок фигуры и оси.

Советы по работе с ВМ

После запуска ВМ кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь задавать вопросы Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Импорт Matplotlib

Прежде чем начать использовать Matplotlib, нам нужно его импортировать. Мы также импортируем модуль pyplot, который предоставляет простой интерфейс для создания графиков.

import matplotlib.pyplot as plt

Создание фигуры и осей

Мы создадим фигуру с двумя подграфиками (осями) с использованием функции subplots. Также зададим заголовок для фигуры.

fig, axs = plt.subplots(2, 1)
fig.suptitle('Mouse Hover Over Figure or Axes to Trigger Events')

Определение обработчиков событий

Теперь мы определим четыре функции обработчика событий: on_enter_axes, on_leave_axes, on_enter_figure и on_leave_figure. Эти функции будут вызываться, когда указатель мыши входит в или выходит из оси или фигуры.

def on_enter_axes(event):
    print('enter_axes', event.inaxes)
    event.inaxes.patch.set_facecolor('yellow')
    event.canvas.draw()

def on_leave_axes(event):
    print('leave_axes', event.inaxes)
    event.inaxes.patch.set_facecolor('white')
    event.canvas.draw()

def on_enter_figure(event):
    print('enter_figure', event.canvas.figure)
    event.canvas.figure.patch.set_facecolor('red')
    event.canvas.draw()

def on_leave_figure(event):
    print('leave_figure', event.canvas.figure)
    event.canvas.figure.patch.set_facecolor('grey')
    event.canvas.draw()

Подключение обработчиков событий к полотну фигуры

Теперь мы подключим обработчики событий к полотну фигуры с использованием метода mpl_connect. Это позволит вызывать обработчики событий, когда указатель мыши входит в или выходит из фигуры или оси.

fig.canvas.mpl_connect('figure_enter_event', on_enter_figure)
fig.canvas.mpl_connect('figure_leave_event', on_leave_figure)
fig.canvas.mpl_connect('axes_enter_event', on_enter_axes)
fig.canvas.mpl_connect('axes_leave_event', on_leave_axes)

Отображение фигуры

Теперь мы отобразим фигуру с использованием функции show.

plt.show()

Резюме

В этом практическом занятии мы узнали, как использовать события входа/выхода в фигуру и оси в Matplotlib для изменения цветов рамок фигуры и осей. Мы создали фигуру с двумя подграфиками, определили функции обработчиков событий для входа и выхода из фигуры и осей, подключили обработчики событий к полотну фигуры и отобразили фигуру.