Tutorial de Manejo de Eventos en Matplotlib

Beginner

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

Introducción

Esta práctica es un tutorial paso a paso sobre cómo conectar eventos en una ventana, por ejemplo, una presión del mouse, con otra ventana de figura en Python Matplotlib.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje su retroalimentación después de la sesión y lo resolveremos rápidamente para usted.

Configurar el entorno

En primer lugar, necesitamos configurar el entorno de Python e importar las bibliotecas necesarias.

import matplotlib.pyplot as plt
import numpy as np

## Fixing random state for reproducibility
np.random.seed(19680801)

figsrc, axsrc = plt.subplots(figsize=(3.7, 3.7))
figzoom, axzoom = plt.subplots(figsize=(3.7, 3.7))
axsrc.set(xlim=(0, 1), ylim=(0, 1), autoscale_on=False,
          title='Click to zoom')
axzoom.set(xlim=(0.45, 0.55), ylim=(0.4, 0.6), autoscale_on=False,
           title='Zoom window')

x, y, s, c = np.random.rand(4, 200)
s *= 200

axsrc.scatter(x, y, s, c)
axzoom.scatter(x, y, s, c)

Definir la función on_press

A continuación, definimos una función llamada on_press que ajustará los límites z y y de la segunda ventana en función de la ubicación de un clic del mouse en la primera ventana.

def on_press(event):
    if event.button!= 1:
        return
    x, y = event.xdata, event.ydata
    axzoom.set_xlim(x - 0.1, x + 0.1)
    axzoom.set_ylim(y - 0.1, y + 0.1)
    figzoom.canvas.draw()

Conectar el evento a la función

Ahora, conectamos el evento de presión del botón en la primera ventana a la función on_press que acabamos de definir.

figsrc.canvas.mpl_connect('button_press_event', on_press)

Mostrar la gráfica

Finalmente, mostramos la gráfica al usuario.

plt.show()

Resumen

En este laboratorio, aprendimos cómo conectar eventos en una ventana, por ejemplo, una presión del mouse, a otra ventana de figura en Matplotlib de Python. También aprendimos cómo definir una función para ajustar los límites de la segunda ventana en función de la ubicación de un clic del mouse en la primera ventana, y cómo conectar el evento de presión del botón a esta función.