Demo de ejes parasitos

Beginner

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

Introducción

En este laboratorio, aprenderá a crear un eje parasito utilizando los módulos mpl_toolkits.axes_grid1.parasite_axes.HostAxes y mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes en Matplotlib. El eje parasito comparte la escala en x con un eje principal, pero muestra una escala diferente en la dirección 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 las bibliotecas necesarias

En primer lugar, necesitamos importar las bibliotecas necesarias. En este laboratorio, usaremos matplotlib.pyplot para la representación gráfica, mpl_toolkits.axes_grid1.parasite_axes.HostAxes y mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes para crear un eje parasito.

import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.parasite_axes import HostAxes

Crear una figura y agregar un eje principal

Creamos una figura utilizando el método plt.figure() y agregamos un eje principal utilizando el método fig.add_axes(). El eje principal comparte la escala en x con el eje parasito.

fig = plt.figure()
host = fig.add_axes([0.15, 0.1, 0.65, 0.8], axes_class=HostAxes)

Crear ejes parasitos

Creamos dos ejes parasitos utilizando el método host.get_aux_axes(). Establecemos viewlim_mode=None para garantizar que los ejes parasitos compartan la misma escala en x con el eje principal. También establecemos sharex=host para asegurar que se comparta la escala en x.

par1 = host.get_aux_axes(viewlim_mode=None, sharex=host)
par2 = host.get_aux_axes(viewlim_mode=None, sharex=host)

Ocultar el eje y derecho del eje principal

Ocultamos el eje y derecho del eje principal utilizando el método host.axis["right"].set_visible(False).

host.axis["right"].set_visible(False)

Mostrar el eje y derecho del primer eje parasito

Mostramos el eje y derecho del primer eje parasito utilizando el método par1.axis["right"].set_visible(True). También establecemos par1.axis["right"].major_ticklabels.set_visible(True) y par1.axis["right"].label.set_visible(True) para mostrar las etiquetas de las marcas y la etiqueta del eje y derecho.

par1.axis["right"].set_visible(True)
par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)

Agregar un eje y derecho al segundo eje parasito

Agregamos un eje y derecho al segundo eje parasito utilizando el método par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0)).

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

Graficar datos en todos los ejes

Graficamos datos en todos los ejes utilizando el método plot(). También establecemos etiquetas y límites para todos los ejes utilizando el método set().

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")

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 colores de los ejes

Agregamos una leyenda al eje principal utilizando el método host.legend(). También establecemos el color de la etiqueta del eje y izquierdo del eje principal, la etiqueta del eje y derecho del primer eje parasito y la etiqueta del eje y derecho del segundo eje parasito para que coincidan con sus respectivas líneas utilizando los métodos host.axis["left"].label.set_color(p1.get_color()), par1.axis["right"].label.set_color(p2.get_color()) y par2.axis["right2"].label.set_color(p3.get_color()).

host.legend()

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

Mostrar la gráfica

Mostramos la gráfica utilizando el método plt.show().

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear un eje parasito utilizando los módulos mpl_toolkits.axes_grid1.parasite_axes.HostAxes y mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes en Matplotlib. También aprendimos cómo graficar datos en el eje parasito y compartir la escala x con el eje principal.