Técnicas de visualización de datos con Matplotlib

Beginner

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

Introducción

Matplotlib es una poderosa biblioteca de visualización de datos en Python. Proporciona una variedad de herramientas para crear una amplia gama de gráficos, diagramas y trazados. Una de las características más potentes de Matplotlib es su capacidad para escalar datos. Esta práctica te introduce a la AsinhScale, que es una transformación que permite trazar cantidades que cubren un rango dinámico muy amplio que incluye valores positivos y negativos.

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

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel intermedio con una tasa de finalización del 80%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Instalar Matplotlib

Antes de comenzar, asegúrate de que Matplotlib esté instalado. Puedes instalarlo utilizando el comando pip de la siguiente manera:

pip install matplotlib

Importar las bibliotecas necesarias

Para utilizar la AsinhScale, necesitamos importar la biblioteca Matplotlib y la biblioteca numpy. Numpy es una poderosa biblioteca de cómputo numérico en Python que se utiliza a menudo en conjunto con Matplotlib.

import matplotlib.pyplot as plt
import numpy as np

Crear datos de muestra

Antes de poder trazar datos utilizando la AsinhScale, necesitamos crear algunos datos de muestra. Crearemos un gráfico de línea simple utilizando el método linspace de numpy.

## Prepare sample values for variations on y=x graph:
x = np.linspace(-3, 6, 500)

Comparar el comportamiento de "symlog" y "asinh" en el gráfico de muestra y = x

Compararemos el comportamiento de "symlog" y "asinh" en un gráfico de muestra y = x. Trazaremos el mismo gráfico dos veces, una vez con "symlog" y una vez con "asinh".

fig1 = plt.figure()
ax0, ax1 = fig1.subplots(1, 2, sharex=True)

ax0.plot(x, x)
ax0.set_yscale('symlog')
ax0.grid()
ax0.set_title('symlog')

ax1.plot(x, x)
ax1.set_yscale('asinh')
ax1.grid()
ax1.set_title('asinh')

Comparar gráficos de "asinh" con diferentes parámetros de escala "linear_width"

Ahora compararemos gráficos de "asinh" con diferentes parámetros de escala "linear_width". Trazaremos tres gráficos con diferentes valores de "linear_width".

fig2 = plt.figure(layout='constrained')
axs = fig2.subplots(1, 3, sharex=True)
for ax, (a0, base) in zip(axs, ((0.2, 2), (1.0, 0), (5.0, 10))):
    ax.set_title(f'linear_width={a0:.3g}')
    ax.plot(x, x, label='y=x')
    ax.plot(x, 10*x, label='y=10x')
    ax.plot(x, 100*x, label='y=100x')
    ax.set_yscale('asinh', linear_width=a0, base=base)
    ax.grid()
    ax.legend(loc='best', fontsize='small')

Comparar escalas "symlog" y "asinh" en números aleatorios distribuidos según una ley de Cauchy en 2D

Finalmente, compararemos las escalas "symlog" y "asinh" en números aleatorios distribuidos según una ley de Cauchy en 2D. Trazaremos el mismo gráfico dos veces, una vez con "symlog" y una vez con "asinh".

fig3 = plt.figure()
ax = fig3.subplots(1, 1)
r = 3 * np.tan(np.random.uniform(-np.pi / 2.02, np.pi / 2.02,
                                 size=(5000,)))
th = np.random.uniform(0, 2*np.pi, size=r.shape)

ax.scatter(r * np.cos(th), r * np.sin(th), s=4, alpha=0.5)
ax.set_xscale('asinh')
ax.set_yscale('symlog')
ax.set_xlabel('asinh')
ax.set_ylabel('symlog')
ax.set_title('2D Cauchy random deviates')
ax.set_xlim(-50, 50)
ax.set_ylim(-50, 50)
ax.grid()

Resumen

Esta práctica presentó la AsinhScale en Matplotlib, que es una transformación que permite trazar cantidades que cubren un rango dinámico muy amplio que incluye valores positivos y negativos. Aprendimos cómo crear datos de muestra y cómo trazar gráficos con "symlog" y "asinh". También aprendimos cómo comparar gráficos de "asinh" con diferentes parámetros de escala y cómo comparar las escalas "symlog" y "asinh" en números aleatorios distribuidos según una ley de Cauchy en 2D.