Matplotlib Locadores de Marcas de Graduación

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 tutorial, aprenderemos cómo definir la posición de las marcas de graduación en un gráfico de matplotlib utilizando los localizadores de marcas de graduación. Los localizadores de marcas de graduación ayudan a hacer que los gráficos sean más legibles al definir la posición de las marcas de graduación en los ejes x e y. Cubriremos diferentes tipos de localizadores de marcas de graduación y cómo implementarlos en un gráfico de matplotlib.

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

El primer paso es importar las bibliotecas necesarias. Vamos a utilizar matplotlib.pyplot y matplotlib.ticker.

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

Configurando el gráfico

A continuación, configuraremos el gráfico creando una figura y una matriz de subgráficos. También definiremos una función setup que configura los parámetros comunes para los ejes en el ejemplo.

fig, axs = plt.subplots(8, 1, figsize=(8, 6))

def setup(ax, title):
    """Configura los parámetros comunes para los Ejes en el ejemplo."""
    ## solo muestra la espina inferior
    ax.yaxis.set_major_locator(ticker.NullLocator())
    ax.spines[['left', 'right', 'top']].set_visible(False)

    ax.xaxis.set_ticks_position('bottom')
    ax.tick_params(which='major', width=1.00, length=5)
    ax.tick_params(which='minor', width=0.75, length=2.5)
    ax.set_xlim(0, 5)
    ax.set_ylim(0, 1)
    ax.text(0.0, 0.2, title, transform=ax.transAxes,
            fontsize=14, fontname='Monospace', color='tab:blue')

Definiendo el NullLocator

El NullLocator es un localizador que no coloca ninguna marca de graduación en el eje. Podemos definir el NullLocator utilizando ticker.NullLocator().

setup(axs[0], title="NullLocator()")
axs[0].xaxis.set_major_locator(ticker.NullLocator())
axs[0].xaxis.set_minor_locator(ticker.NullLocator())

Definiendo el MultipleLocator

El MultipleLocator es un localizador que coloca las marcas de graduación a intervalos regulares. Podemos definir el MultipleLocator utilizando ticker.MultipleLocator().

setup(axs[1], title="MultipleLocator(0.5, offset=0.2)")
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(0.5, offset=0.2))
axs[1].xaxis.set_minor_locator(ticker.MultipleLocator(0.1))

Definiendo el FixedLocator

El FixedLocator es un localizador que coloca las marcas de graduación en ubicaciones fijas. Podemos definir el FixedLocator utilizando ticker.FixedLocator().

setup(axs[2], title="FixedLocator([0, 1, 5])")
axs[2].xaxis.set_major_locator(ticker.FixedLocator([0, 1, 5]))
axs[2].xaxis.set_minor_locator(ticker.FixedLocator(np.linspace(0.2, 0.8, 4)))

Definiendo el LinearLocator

El LinearLocator es un localizador que coloca las marcas de graduación a intervalos regulares en una escala lineal. Podemos definir el LinearLocator utilizando ticker.LinearLocator().

setup(axs[3], title="LinearLocator(numticks=3)")
axs[3].xaxis.set_major_locator(ticker.LinearLocator(3))
axs[3].xaxis.set_minor_locator(ticker.LinearLocator(31))

Definiendo el IndexLocator

El IndexLocator es un localizador que coloca las marcas de graduación a intervalos regulares en una escala de índice. Podemos definir el IndexLocator utilizando ticker.IndexLocator().

setup(axs[4], title="IndexLocator(base=0.5, offset=0.25)")
axs[4].plot([0]*5, color='white')
axs[4].xaxis.set_major_locator(ticker.IndexLocator(base=0.5, offset=0.25))

Definiendo el AutoLocator

El AutoLocator es un localizador que coloca automáticamente las marcas de graduación a intervalos regulares. Podemos definir el AutoLocator utilizando ticker.AutoLocator().

setup(axs[5], title="AutoLocator()")
axs[5].xaxis.set_major_locator(ticker.AutoLocator())
axs[5].xaxis.set_minor_locator(ticker.AutoMinorLocator())

Definiendo el MaxNLocator

El MaxNLocator es un localizador que coloca un número máximo de marcas de graduación en el eje. Podemos definir el MaxNLocator utilizando ticker.MaxNLocator().

setup(axs[6], title="MaxNLocator(n=4)")
axs[6].xaxis.set_major_locator(ticker.MaxNLocator(4))
axs[6].xaxis.set_minor_locator(ticker.MaxNLocator(40))

Definiendo el LogLocator

El LogLocator es un localizador que coloca las marcas de graduación a intervalos regulares en una escala logarítmica. Podemos definir el LogLocator utilizando ticker.LogLocator().

setup(axs[7], title="LogLocator(base=10, numticks=15)")
axs[7].set_xlim(10**3, 10**10)
axs[7].set_xscale('log')
axs[7].xaxis.set_major_locator(ticker.LogLocator(base=10, numticks=15))

Mostrando la gráfica

Finalmente, podemos mostrar la gráfica utilizando plt.show().

plt.tight_layout()
plt.show()

Resumen

En este tutorial, aprendimos cómo definir la posición de las marcas de graduación en una gráfica de matplotlib utilizando localizadores de marcas. Cubrimos diferentes tipos de localizadores de marcas y cómo implementarlos en una gráfica de matplotlib. Esto puede ayudar a hacer que las gráficas sean más legibles e informativas.