Crear gráficos múltiples con ejes parásitos en Matplotlib

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos a crear un gráfico con múltiples conjuntos de datos utilizando un eje parasito en Python Matplotlib. Utilizaremos mpl_toolkits.axes_grid1.parasite_axes.host_subplot y mpl_toolkits.axisartist.axislines.Axes para crear un gráfico con múltiples ejes y.

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 las 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 bibliotecas

En primer lugar, necesitamos importar las bibliotecas necesarias. Utilizaremos matplotlib.pyplot para la representación gráfica y mpl_toolkits para crear un eje parasito.

import matplotlib.pyplot as plt
from mpl_toolkits import axisartist
from mpl_toolkits.axes_grid1 import host_subplot

Crear ejes principal y parasitos

Crearemos un eje principal y dos ejes parasitos utilizando las funciones host_subplot() y twinx(). La función host_subplot() crea un eje principal, y la función twinx() crea ejes parasitos que comparten el mismo eje x con el eje principal.

host = host_subplot(111, axes_class=axisartist.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

Ajustar el eje parasito

Necesitamos ajustar la posición de los ejes parasitos. La función new_fixed_axis() se utiliza para crear un nuevo eje y en el lado derecho de la gráfica. La función toggle() se utiliza para activar todas las marcas de graduación y etiquetas del eje y derecho.

par2.axis["right"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

Representar los datos

Representaremos tres conjuntos de datos en la misma gráfica: Densidad, Temperatura y Velocidad. Utilizaremos la función plot() para representar los datos.

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

Establecer límites y etiquetas de los ejes

Estableceremos los límites y etiquetas de los ejes x e y para cada eje utilizando la función set().

host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")

Agregar leyenda y color

Agregaremos una leyenda a la gráfica y colorearemos las etiquetas de cada eje para que coincidan con el color del conjunto de datos correspondiente utilizando las funciones legend() y label.set_color().

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right"].label.set_color(p3.get_color())

Mostrar la gráfica

Finalmente, mostraremos la gráfica utilizando la función show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear una gráfica con múltiples conjuntos de datos utilizando ejes parásitos en Python Matplotlib. Utilizamos mpl_toolkits.axes_grid1.parasite_axes.host_subplot y mpl_toolkits.axisartist.axislines.Axes para crear una gráfica con múltiples ejes y. También aprendimos cómo ajustar la posición de los ejes parásitos, representar los datos, establecer los límites y etiquetas de los ejes, agregar leyenda y color a la gráfica y mostrar la gráfica.