Introducción
Este tutorial te guiará a través de la creación de una visualización utilizando la colección de Matplotlib. El tutorial te mostrará cómo utilizar LineCollection, PolyCollection y RegularPolyCollection. El tutorial también te mostrará cómo utilizar los argumentos de palabras clave de desplazamiento y offset_transform de LineCollection y PolyCollection para establecer las posiciones de las hélices. El tutorial también te mostrará cómo utilizar RegularPolyCollection para crear polígonos regulares.
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.
A veces, 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 te resolveremos el problema inmediatamente.
Importar las bibliotecas necesarias
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import collections, transforms
El primer paso es importar las bibliotecas necesarias. Para este tutorial utilizaremos Matplotlib y Numpy.
Crear hélices
nverts = 50
npts = 100
## Hacer algunas hélices
r = np.arange(nverts)
theta = np.linspace(0, 2*np.pi, nverts)
xx = r * np.sin(theta)
yy = r * np.cos(theta)
spiral = np.column_stack([xx, yy])
El siguiente paso es crear hélices utilizando Numpy. Utilizaremos las funciones seno y coseno para crear las hélices.
Crear desplazamientos
## Fijando el estado aleatorio para la reproducibilidad
rs = np.random.RandomState(19680801)
## Hacer algunos desplazamientos
xyo = rs.randn(npts, 2)
El tercer paso es crear desplazamientos utilizando Numpy. Utilizaremos la función aleatoria para crear los desplazamientos.
Crear LineCollection utilizando desplazamientos
col = collections.LineCollection(
[spiral], offsets=xyo, offset_transform=ax1.transData)
trans = fig.dpi_scale_trans + transforms.Affine2D().scale(1.0/72.0)
col.set_transform(trans)
col.set_color(colors)
ax1.add_collection(col, autolim=True)
ax1.autoscale_view()
ax1.set_title('LineCollection using offsets')
El cuarto paso es crear una LineCollection utilizando desplazamientos. Utilizaremos la LineCollection para crear curvas con desplazamientos. También utilizaremos el offset_transform para establecer las posiciones de las curvas.
Crear PolyCollection utilizando desplazamientos
col = collections.PolyCollection(
[spiral], offsets=xyo, offset_transform=ax2.transData)
trans = transforms.Affine2D().scale(fig.dpi/72.0)
col.set_transform(trans)
col.set_color(colors)
ax2.add_collection(col, autolim=True)
ax2.autoscale_view()
ax2.set_title('PolyCollection using offsets')
El quinto paso es crear una PolyCollection utilizando desplazamientos. Utilizaremos la PolyCollection para llenar las curvas con colores. También utilizaremos el offset_transform para establecer las posiciones de las curvas.
Crear RegularPolyCollection utilizando desplazamientos
col = collections.RegularPolyCollection(
7, sizes=np.abs(xx) * 10.0, offsets=xyo, offset_transform=ax3.transData)
trans = transforms.Affine2D().scale(fig.dpi / 72.0)
col.set_transform(trans)
col.set_color(colors)
ax3.add_collection(col, autolim=True)
ax3.autoscale_view()
ax3.set_title('RegularPolyCollection using offsets')
El sexto paso es crear una RegularPolyCollection utilizando desplazamientos. Utilizaremos la RegularPolyCollection para crear polígonos regulares con desplazamientos. También utilizaremos el offset_transform para establecer las posiciones de los polígonos.
Crear desplazamientos sucesivos de datos
## Simular una serie de perfiles de corrientes oceánicas, sucesivamente
## desplazados en 0.1 m/s de modo que formen lo que a veces se llama
## una gráfica de "cascada" o una gráfica de "desplazamiento".
nverts = 60
ncurves = 20
offs = (0.1, 0.0)
yy = np.linspace(0, 2*np.pi, nverts)
ym = np.max(yy)
xx = (0.2 + (ym - yy) / ym) ** 2 * np.cos(yy - 0.4) * 0.5
segs = []
for i in range(ncurves):
xxx = xx + 0.02*rs.randn(nverts)
curve = np.column_stack([xxx, yy * 100])
segs.append(curve)
col = collections.LineCollection(segs, offsets=offs)
ax4.add_collection(col, autolim=True)
col.set_color(colors)
ax4.autoscale_view()
ax4.set_title('Successive data offsets')
ax4.set_xlabel('Zonal velocity component (m/s)')
ax4.set_ylabel('Depth (m)')
ax4.set_ylim(ax4.get_ylim()[::-1])
El séptimo paso es crear desplazamientos sucesivos de datos. Utilizaremos la LineCollection para crear curvas con desplazamientos sucesivos.
Resumen
Este tutorial te ha mostrado cómo utilizar la colección de Matplotlib para crear visualizaciones. Has aprendido cómo utilizar LineCollection, PolyCollection y RegularPolyCollection para crear curvas y polígonos. También has aprendido cómo utilizar los argumentos de palabras clave offsets y offset_transform de LineCollection y PolyCollection para establecer las posiciones de las hélices.