Взаимодействие мыши с графиком Matplotlib

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

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

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

Введение

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

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

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

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

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

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

Во - первых, нам нужно создать график синусоидальной волны с использованием библиотек numpy и matplotlib.

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 1.0, 0.01)
s = np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)

Событие перемещения мыши

Мы можем подключаться к событиям перемещения мыши с использованием метода motion_notify_event. В этом примере мы выводим координаты x и y данных и координаты x и y пикселей, когда мышь движется по графику.

def on_move(event):
    if event.inaxes:
        print(f'data coords {event.xdata} {event.ydata},',
              f'pixel coords {event.x} {event.y}')

binding_id = plt.connect('motion_notify_event', on_move)

Событие нажатия кнопки мыши

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

from matplotlib.backend_bases import MouseButton

def on_click(event):
    if event.button is MouseButton.LEFT:
        print('disconnecting callback')
        plt.disconnect(binding_id)

plt.connect('button_press_event', on_click)

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

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

plt.show()

Резюме

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