Control de visualización con Matplotlib en Python

Beginner

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

Introducción

Matplotlib es una biblioteca de visualización de datos en Python que se utiliza para crear visualizaciones estáticas, animadas e interactivas en Python. Proporciona una API orientada a objetos para incrustar gráficos en aplicaciones utilizando kits de herramientas GUI de uso general como Tkinter, wxPython, Qt o GTK. En este laboratorio, aprenderemos a controlar los límites de vista y los bordes adherentes en Matplotlib utilizando Python.

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 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 sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Graficado con márgenes

El método margins() en Matplotlib se puede utilizar para establecer márgenes en la gráfica en lugar de utilizar los métodos set_xlim() y set_ylim(). En este paso, aprenderemos a hacer zoom in y out en una gráfica utilizando el método margins() en lugar de los métodos set_xlim() y set_ylim().

import matplotlib.pyplot as plt
import numpy as np

def f(t):
    return np.exp(-t) * np.cos(2*np.pi*t)

t1 = np.arange(0.0, 3.0, 0.01)

## crea un subgráfico con márgenes
ax1 = plt.subplot(212)
ax1.margins(0.05) ## el margen predeterminado es 0.05, el valor 0 significa ajustar
ax1.plot(t1, f(t1))

## crea un subgráfico con márgenes ampliados
ax2 = plt.subplot(221)
ax2.margins(2, 2) ## valores >0.0 amplían
ax2.plot(t1, f(t1))
ax2.set_title('Ampliado')

## crea un subgráfico con márgenes reducidos
ax3 = plt.subplot(222)
ax3.margins(x=0, y=-0.25) ## valores en (-0.5, 0.0) se acercan al centro
ax3.plot(t1, f(t1))
ax3.set_title('Reducido')

plt.show()

Bordes adherentes

Algunas funciones de trazado en Matplotlib hacen que los límites del eje sean "adherentes" o inmunes al método margins(). Por ejemplo, imshow() y pcolor() esperan que el usuario desee que los límites estén ajustados alrededor de los píxeles mostrados en la gráfica. Si este comportamiento no es deseado, es necesario establecer use_sticky_edges en False. En este paso, aprenderemos a evitar los bordes adherentes en Matplotlib.

## crea una cuadrícula
y, x = np.mgrid[:5, 1:6]

## define las coordenadas del polígono
poly_coords = [
    (0.25, 2.75), (3.25, 2.75),
    (2.25, 0.75), (0.25, 0.75)
]

## crea subgráficos
fig, (ax1, ax2) = plt.subplots(ncols=2)

## utiliza bordes adherentes para ax1 y desactiva los bordes adherentes para ax2
ax2.use_sticky_edges = False

## traza en ambos subgráficos
for ax, status in zip((ax1, ax2), ('Es', 'No es')):
    cells = ax.pcolor(x, y, x+y, cmap='inferno', shading='auto') ## adherente
    ax.add_patch(
        Polygon(poly_coords, color='forestgreen', alpha=0.5)
    ) ## no adherente
    ax.margins(x=0.1, y=0.05)
    ax.set_aspect('equal')
    ax.set_title(f'{status} Adherente')

plt.show()

Resumen

En este laboratorio, aprendimos a controlar los límites de vista y los bordes adherentes en Matplotlib utilizando Python. Aprendimos a hacer zoom in y out en una gráfica utilizando el método margins() en lugar de los métodos set_xlim() y set_ylim(). También aprendimos a evitar los bordes adherentes en Matplotlib utilizando la propiedad use_sticky_edges.