Introducción
En la visualización de datos, es esencial etiquetar correctamente las marcas de los ejes. La clase EngFormatter en Matplotlib permite etiquetar las marcas de un eje utilizando notación científica. La notación científica es una representación matemática de números que utiliza potencias de diez con múltiplos de tres. Es una forma concisa de expresar números grandes o pequeños que son difíciles de leer o escribir en notación estándar. En este laboratorio, aprenderemos cómo etiquetar las marcas de un eje utilizando notación científica.
Consejos sobre la VM
Una vez que se haya iniciado 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.
Importar las bibliotecas necesarias
El primer paso es importar las bibliotecas necesarias. En este laboratorio, usaremos Matplotlib, NumPy y EngFormatter.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import EngFormatter
Crear datos artificiales
Necesitamos crear algunos datos artificiales para graficar. En este laboratorio, graficaremos el logaritmo de la frecuencia (en Hz) contra el logaritmo de la potencia (en Watts). Usaremos la biblioteca numpy para generar los datos.
## Fixing random state for reproducibility
prng = np.random.RandomState(19680801)
## Create artificial data to plot.
## The x data span over several decades to demonstrate several SI prefixes.
xs = np.logspace(1, 9, 100)
ys = (0.8 + 0.4 * prng.uniform(size=100)) * np.log10(xs)**2
Crear la figura y los subgráficos
Necesitamos crear una figura y subgráficos para mostrar los datos. En este laboratorio, crearemos dos subgráficos, uno al lado del otro.
## Figure width is doubled (2*6.4) to display nicely 2 subplots side by side.
fig, (ax0, ax1) = plt.subplots(nrows=2, figsize=(7, 9.6))
for ax in (ax0, ax1):
ax.set_xscale('log')
Etiquetar las marcas con notación científica
Ahora etiquetaremos las marcas del eje x usando notación científica. En el primer subgráfico, usaremos los ajustes predeterminados, y en el segundo subgráfico, usaremos las opciones places y sep para especificar el número de dígitos después del punto decimal y el separador entre el número y el prefijo/unit.
## Demo of the default settings, with a user-defined unit label.
ax0.set_title('Full unit ticklabels, w/ default precision & space separator')
formatter0 = EngFormatter(unit='Hz')
ax0.xaxis.set_major_formatter(formatter0)
ax0.plot(xs, ys)
ax0.set_xlabel('Frequency')
## Demo of the options `places` (number of digit after decimal point) and
## `sep` (separator between the number and the prefix/unit).
ax1.set_title('SI-prefix only ticklabels, 1-digit precision & '
'thin space separator')
formatter1 = EngFormatter(places=1, sep="\N{THIN SPACE}") ## U+2009
ax1.xaxis.set_major_formatter(formatter1)
ax1.plot(xs, ys)
ax1.set_xlabel('Frequency [Hz]')
Mostrar la gráfica
Ahora mostraremos la gráfica usando la función plt.show().
plt.tight_layout()
plt.show()
Resumen
En este laboratorio, aprendimos cómo etiquetar las marcas en un eje usando notación científica. Usamos la clase EngFormatter en Matplotlib para etiquetar las marcas en el eje x de una gráfica. También aprendimos cómo crear subgráficos y personalizar las etiquetas de las marcas usando las opciones places y sep de EngFormatter. La notación científica es una forma concisa y clara de expresar números grandes o pequeños que son difíciles de leer o escribir en notación estándar.