Evento de desplazamiento en Matplotlib

Beginner

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

Introducción

Esta práctica te guiará a través de un proceso paso a paso de cómo utilizar el evento de desplazamiento en Matplotlib. El evento de desplazamiento se puede utilizar para navegar a través de secciones bidimensionales de datos tridimensionales.

Consejos sobre la VM

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

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

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.

Importar las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas necesarias, que incluyen Matplotlib y NumPy.

import matplotlib.pyplot as plt
import numpy as np

Crear los datos

Vamos a crear datos tridimensionales utilizando la función ogrid de NumPy.

x, y, z = np.ogrid[-10:10:100j, -10:10:100j, 1:10:20j]
X = np.sin(x * y * z) / (x * y * z)

Crear la clase IndexTracker

La clase IndexTracker llevará un registro del índice de la sección actual y actualizará la gráfica en consecuencia.

class IndexTracker:
    def __init__(self, ax, X):
        self.index = 0
        self.X = X
        self.ax = ax
        self.im = ax.imshow(self.X[:, :, self.index])
        self.update()

    def on_scroll(self, event):
        increment = 1 if event.button == 'up' else -1
        max_index = self.X.shape[-1] - 1
        self.index = np.clip(self.index + increment, 0, max_index)
        self.update()

    def update(self):
        self.im.set_data(self.X[:, :, self.index])
        self.ax.set_title(
            f'Use scroll wheel to navigate\nindex {self.index}')
        self.im.axes.figure.canvas.draw()

Crear la gráfica y conectar el evento de desplazamiento

Vamos a crear la gráfica utilizando la función subplots de Matplotlib y pasarle el objeto IndexTracker creado. Luego, conectaremos el evento de desplazamiento a la superficie del gráfico utilizando mpl_connect.

fig, ax = plt.subplots()
tracker = IndexTracker(ax, X)

fig.canvas.mpl_connect('scroll_event', tracker.on_scroll)
plt.show()

Resumen

En este laboratorio, aprendimos cómo utilizar el evento de desplazamiento en Matplotlib para navegar a través de secciones bidimensionales de datos tridimensionales. Creamos una clase IndexTracker para llevar un registro del índice de la sección actual y actualizamos la gráfica en consecuencia. Finalmente, creamos la gráfica y conectamos el evento de desplazamiento a la superficie del gráfico.