Crear etiquetas de marcas de tiempo a partir de una lista de valores

Beginner

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

Introducción

En este tutorial, aprenderá a usar Matplotlib para crear etiquetas de marcas a partir de una lista de valores. Cuando se utiliza .Axes.set_xticks, las etiquetas de marcas se establecen en las marcas actualmente elegidas. Sin embargo, a veces es mejor permitir que Matplotlib elija dinámicamente el número de marcas y su espaciado. En este caso, es posible que desee determinar la etiqueta de marca a partir del valor en la marca. Este tutorial le mostrará cómo hacerlo.

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

Comenzamos importando las bibliotecas necesarias para este tutorial, que son matplotlib.pyplot y MaxNLocator de matplotlib.ticker.

import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator

Crear un objeto de figura y ejes

A continuación, creamos un objeto de figura y ejes utilizando el método subplots() de matplotlib.pyplot.

fig, ax = plt.subplots()

Crear los datos de x e y

Creamos los datos de x e y utilizando el método range() de la función range incorporada en Python.

xs = range(26)
ys = range(26)

Crear una lista de etiquetas

Creamos una lista de etiquetas utilizando el método list() para convertir una cadena del alfabeto en una lista de caracteres.

labels = list('abcdefghijklmnopqrstuvwxyz')

Crear una función de formato

Creamos una función de formato que determina la etiqueta de la marca de tiempo a partir del valor en la marca de tiempo. Si el valor de la marca de tiempo es un entero en el rango de xs, se devuelve la etiqueta correspondiente de la lista labels. En caso contrario, se devuelve una cadena vacía.

def format_fn(tick_val, tick_pos):
    if int(tick_val) in xs:
        return labels[int(tick_val)]
    else:
        return ''

Establecer el formateador y el localizador de marcas de tiempo

Establecemos el formateador de marcas de tiempo del eje x en la función de formato creada en el Paso 5 utilizando el método set_major_formatter(). También establecemos el localizador de marcas de tiempo del eje x en MaxNLocator(integer=True) para garantizar que los valores de las marcas de tiempo tomen valores enteros.

ax.xaxis.set_major_formatter(format_fn)
ax.xaxis.set_major_locator(MaxNLocator(integer=True))

Crear la gráfica

Creamos la gráfica utilizando el método plot() del objeto axes y pasamos los datos xs e ys.

ax.plot(xs, ys)

Mostrar la gráfica

Finalmente, mostramos la gráfica utilizando el método show() de matplotlib.pyplot.

plt.show()

Resumen

En este tutorial, aprendiste cómo crear etiquetas de marcas de tiempo a partir de una lista de valores utilizando Matplotlib. Primero creamos un objeto de figura y ejes, luego creamos los datos de x e y y, finalmente, creamos una lista de etiquetas. Luego creamos una función de formato que determina la etiqueta de la marca de tiempo a partir del valor en la marca de tiempo y establecemos el formateador y el localizador de marcas de tiempo. Finalmente, creamos la gráfica y la mostramos.