Simple Axis Pad

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

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.