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.