Настройка альтернативного курсора в Matplotlib

Beginner

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

Введение

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

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

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

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

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

Импортируем необходимые библиотеки

Сначала нам нужно импортировать необходимые библиотеки. Мы будем использовать matplotlib.pyplot и matplotlib.backend_tools.

import matplotlib.pyplot as plt
from matplotlib.backend_tools import Cursors

Создаем фигуру и назначаем альтернативные курсоры

Далее мы создаем фигуру и назначаем альтернативные курсоры для каждого подграфика с использованием цикла. Также добавляем текст в каждый подграфик, чтобы указать используемый курсор.

fig, axs = plt.subplots(len(Cursors), figsize=(6, len(Cursors) + 0.5), gridspec_kw={'hspace': 0})
fig.suptitle('Hover over an Axes to see alternate Cursors')

for cursor, ax in zip(Cursors, axs):
    ax.cursor_to_use = cursor
    ax.text(0.5, 0.5, cursor.name,
            horizontalalignment='center', verticalalignment='center')
    ax.set(xticks=[], yticks=[])

Настраиваем курсор при наведении

Нам нужно установить курсор на альтернативный, когда пользователь наведет указатель мыши на подграфик. Мы достигаем этого с использованием события motion_notify_event и функции set_cursor().

def hover(event):
    if fig.canvas.widgetlock.locked():
        ## Don't do anything if the zoom/pan tools have been enabled.
        return

    fig.canvas.set_cursor(
        event.inaxes.cursor_to_use if event.inaxes else Cursors.POINTER)

fig.canvas.mpl_connect('motion_notify_event', hover)

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

Наконец, мы отображаем фигуру с использованием функции show().

plt.show()

Резюме

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