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

PythonPythonBeginner
Практиковаться сейчас

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") matplotlib/AdvancedTopicsGroup -.-> matplotlib/event_handling("Event Handling") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} matplotlib/figures_axes -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} python/tuples -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} python/function_definition -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} python/build_in_functions -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} python/importing_modules -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} matplotlib/event_handling -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} python/data_visualization -.-> lab-48730{{"События входа/выхода в фигуру и оси Matplotlib"}} end

Импорт 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 для изменения цветов рамок фигуры и осей. Мы создали фигуру с двумя подграфиками, определили функции обработчиков событий для входа и выхода из фигуры и осей, подключили обработчики событий к полотну фигуры и отобразили фигуру.