Introducción
En este laboratorio, aprenderá a cambiar la dirección del eje en un gráfico de Matplotlib utilizando el método set_axis_direction(). Este método le permite cambiar la dirección de un eje a cualquiera de las cuatro direcciones cardinales: arriba, abajo, izquierda o derecha.
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.
Importando bibliotecas
Primero, necesitamos importar las bibliotecas necesarias para este laboratorio. Vamos a utilizar numpy y matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Configurando la gráfica
A continuación, definiremos una función setup_axes() que configurará la proyección polar en un rectángulo. Esta función utiliza GridHelperCurveLinear para crear una proyección polar con un rectángulo.
from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist as axisartist
import mpl_toolkits.axisartist.angle_helper as angle_helper
import mpl_toolkits.axisartist.grid_finder as grid_finder
from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
def setup_axes(fig, rect):
"""Proyección polar, pero en un rectángulo."""
grid_helper = GridHelperCurveLinear(
Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform(),
extreme_finder=angle_helper.ExtremeFinderCycle(
20, 20,
lon_cycle=360, lat_cycle=None,
lon_minmax=None, lat_minmax=(0, np.inf),
),
grid_locator1=angle_helper.LocatorDMS(12),
grid_locator2=grid_finder.MaxNLocator(5),
tick_formatter1=angle_helper.FormatterDMS(),
)
ax = fig.add_subplot(
rect, axes_class=axisartist.Axes, grid_helper=grid_helper,
aspect=1, xlim=(-5, 12), ylim=(-5, 10))
ax.axis[:].toggle(ticklabels=False)
ax.grid(color=".9")
return ax
Agregando ejes flotantes
Definiremos dos funciones que agregarán ejes flotantes a nuestra gráfica. La primera función add_floating_axis1() agrega un eje flotante a la gráfica con una etiqueta de theta = 30. La segunda función add_floating_axis2() agrega un eje flotante a la gráfica con una etiqueta de r = 6.
def add_floating_axis1(ax):
ax.axis["lat"] = axis = ax.new_floating_axis(0, 30)
axis.label.set_text(r"$\theta = 30^{\circ}$")
axis.label.set_visible(True)
return axis
def add_floating_axis2(ax):
ax.axis["lon"] = axis = ax.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")
axis.label.set_visible(True)
return axis
Cambiando la dirección del eje
Ahora, crearemos un bucle para configurar cuatro gráficas diferentes con el eje flotante en cada una de las cuatro direcciones cardinales. En el bucle, usaremos add_floating_axis1() y add_floating_axis2() para agregar los ejes flotantes, y set_axis_direction() para establecer la dirección del eje.
fig = plt.figure(figsize=(8, 4), layout="constrained")
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=241+i)
axis = add_floating_axis1(ax)
axis.set_axis_direction(d)
ax.set(title=d)
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=245+i)
axis = add_floating_axis2(ax)
axis.set_axis_direction(d)
ax.set(title=d)
plt.show()
Visualizando la gráfica
Finalmente, visualizaremos la gráfica. Podemos ver la misma gráfica con el eje flotante en cada una de las cuatro direcciones cardinales.
Resumen
En este laboratorio, aprendiste cómo cambiar la dirección del eje en una gráfica de Matplotlib utilizando el método set_axis_direction(). Al utilizar este método, puedes cambiar fácilmente la dirección de un eje a cualquiera de las cuatro direcciones cardinales: arriba, abajo, izquierda o derecha.