Introducción
En la visualización de datos, a menudo es necesario trazar múltiples variables con diferentes unidades de medida en la misma gráfica. Un método común para lograr esto es utilizar múltiples ejes y, donde cada eje y corresponde a una variable diferente. En este laboratorio, aprenderemos cómo crear una gráfica con múltiples ejes y utilizando 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 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.
Importar las bibliotecas necesarias
Comenzamos importando las bibliotecas necesarias, Matplotlib y NumPy. Matplotlib es una biblioteca de visualización de datos y NumPy es una biblioteca para el cálculo numérico en Python.
import matplotlib.pyplot as plt
import numpy as np
Crear un objeto de figura y ejes
Creamos un objeto de figura y ejes, que representa una sola gráfica en Matplotlib.
fig, ax = plt.subplots()
Agregar un eje y gemelo
Agregamos un eje y gemelo a la gráfica utilizando el método twinx. Esto creará un nuevo eje y en el lado derecho de la gráfica.
twin1 = ax.twinx()
Establecer la posición del eje y gemelo
Establecemos la posición del eje y gemelo utilizando el método set_position. Esto moverá el eje y gemelo a la derecha del eje y original.
twin1.spines.right.set_position(("axes", 1.2))
Agregar datos a la gráfica
Agregamos datos a la gráfica utilizando el método plot. Agregamos tres líneas a la gráfica, cada una con un eje y diferente.
p1, = ax.plot([0, 1, 2], [0, 1, 2], "C0", label="Density")
p2, = twin1.plot([0, 1, 2], [0, 3, 2], "C1", label="Temperature")
p3, = twin2.plot([0, 1, 2], [50, 30, 15], "C2", label="Velocity")
Establecer los límites y etiquetas para los ejes
Establecemos los límites y etiquetas para cada eje y utilizando el método set. También establecemos el color de las etiquetas para que coincida con el color de las líneas utilizando el método set_color.
ax.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
twin1.set(ylim=(0, 4), ylabel="Temperature")
twin2.set(ylim=(1, 65), ylabel="Velocity")
ax.yaxis.label.set_color(p1.get_color())
twin1.yaxis.label.set_color(p2.get_color())
twin2.yaxis.label.set_color(p3.get_color())
Establecer los colores de las marcas de graduación
Establecemos los colores de las marcas de graduación para cada eje y para que coincidan con el color de las etiquetas.
ax.tick_params(axis='y', colors=p1.get_color())
twin1.tick_params(axis='y', colors=p2.get_color())
twin2.tick_params(axis='y', colors=p3.get_color())
Agregar una leyenda a la gráfica
Agregamos una leyenda a la gráfica utilizando el método legend. Pasamos una lista de objetos de línea como parámetro handles.
ax.legend(handles=[p1, p2, p3])
Mostrar la gráfica
Mostramos la gráfica utilizando el método show.
plt.show()
Resumen
En este laboratorio, aprendimos cómo crear un gráfico con múltiples ejes y utilizando Matplotlib. Creamos un objeto de figura y ejes, agregamos un eje y gemelo, establecimos la posición del eje y gemelo, agregamos datos a la gráfica, establecimos los límites y etiquetas para los ejes, establecimos los colores de las marcas de graduación, agregamos una leyenda a la gráfica y mostramos la gráfica. Esta técnica puede ser útil al comparar variables con diferentes unidades de medida en la misma gráfica.