Introducción
Esta práctica te enseñará a usar la función add_floating_axis en Matplotlib para agregar ejes flotantes a una gráfica, lo que se puede utilizar para mostrar información adicional sobre la gráfica. En particular, aprenderás cómo ajustar el relleno de las etiquetas de los valores de los ejes y las etiquetas de los ejes, así como cómo ajustar la posición de los valores de los ejes en los ejes flotantes.
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 las 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 resolveremos rápidamente el problema para ti.
Importar bibliotecas
Primero, importa las bibliotecas necesarias, incluyendo matplotlib.pyplot, numpy y mpl_toolkits.axisartist.
import matplotlib.pyplot as plt
import numpy as np
import mpl_toolkits.axisartist as axisartist
Definir la función de configuración de ejes
A continuación, define la función setup_axes(), que configura la proyección polar de la gráfica. Esta función utiliza un GridHelperCurveLinear para crear una proyección polar en un cuadro rectangular. También establece los límites de la gráfica y devuelve el objeto ax1.
def setup_axes(fig, rect):
## Define the PolarAxes transform and the extreme finder
tr = 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))
## Define the grid locators and formatters
grid_locator1 = angle_helper.LocatorDMS(12)
grid_locator2 = grid_finder.MaxNLocator(5)
tick_formatter1 = angle_helper.FormatterDMS()
## Define the GridHelperCurveLinear
grid_helper = GridHelperCurveLinear(tr, extreme_finder=extreme_finder, grid_locator1=grid_locator1, grid_locator2=grid_locator2, tick_formatter1=tick_formatter1)
## Create the axis object and set its limits
ax1 = fig.add_subplot(rect, axes_class=axisartist.Axes, grid_helper=grid_helper)
ax1.axis[:].set_visible(False)
ax1.set_aspect(1.)
ax1.set_xlim(-5, 12)
ax1.set_ylim(-5, 10)
return ax1
Definir la función de eje flotante agregado
Define la función add_floating_axis, que agrega un eje flotante a la gráfica. Esta función toma el objeto ax1 como argumento y devuelve el objeto axis.
def add_floating_axis(ax1):
## Define the floating axis
ax1.axis["lat"] = axis = ax1.new_floating_axis(0, 30)
axis.label.set_text(r"$\theta = 30^{\circ}$")
axis.label.set_visible(True)
return axis
Agregar relleno a las etiquetas de los valores de los ejes
En este paso, agrega relleno a las etiquetas de los valores de los ejes en el eje flotante. Esto se puede hacer estableciendo el atributo pad del objeto major_ticklabels con el valor de relleno deseado.
## Add Padding to Tick Labels
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)
ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)
ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.major_ticklabels.set_pad(10)
plt.show()
Ajustar el relleno de la etiqueta del eje
En este paso, ajusta el relleno de la etiqueta del eje en el eje flotante. Esto se puede hacer estableciendo el atributo pad del objeto label con el valor de relleno deseado.
## Adjust Axis Label Padding
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)
ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)
ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.label.set_pad(20)
plt.show()
Ajustar la posición de los valores de los ejes
En este paso, ajusta la posición de los valores de los ejes en el eje flotante. Esto se puede hacer estableciendo el atributo tick_out del objeto major_ticks en True.
## Adjust Tick Position
fig = plt.figure(figsize=(9, 3.))
fig.subplots_adjust(left=0.01, right=0.99, bottom=0.01, top=0.99, wspace=0.01, hspace=0.01)
ax1 = setup_axes(fig, rect=121)
axis = add_floating_axis(ax1)
ax1 = setup_axes(fig, rect=122)
axis = add_floating_axis(ax1)
axis.major_ticks.set_tick_out(True)
plt.show()
Resumen
En este laboratorio, aprendiste cómo usar la función add_floating_axis en Matplotlib para agregar ejes flotantes a una gráfica. También aprendiste cómo ajustar el relleno de las etiquetas de los valores de los ejes y las etiquetas del eje, así como cómo ajustar la posición de los valores de los ejes en los ejes flotantes. Al final de este laboratorio, deberías ser capaz de crear gráficas personalizadas con ejes flotantes que muestren información adicional sobre la gráfica.