Visualización de datos con Matplotlib

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 está diseñada para introducirte a los conceptos básicos de visualización de datos utilizando Matplotlib. Matplotlib es una popular biblioteca de visualización de datos para Python que ofrece una amplia variedad de opciones para crear gráficos, diagramas y tablas.

Consejos sobre la VM

Una vez que se haya iniciado 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 el problema para ti de inmediato.

Configuración

Antes de comenzar, debemos asegurarnos de que Matplotlib esté instalado. Puedes instalarlo utilizando pip, ejecutando el siguiente comando:

!pip install matplotlib

Una vez instalado, debemos importar la biblioteca y configurar el entorno:

import matplotlib.pyplot as plt
import numpy as np

## Fixing random state for reproducibility
np.random.seed(19680801)

## Create new Figure with black background
fig = plt.figure(figsize=(8, 8), facecolor='black')

## Add a subplot with no frame
ax = plt.subplot(frameon=False)

Generando datos aleatorios

En este paso, generaremos datos aleatorios que usaremos para crear nuestro gráfico.

## Generate random data
data = np.random.uniform(0, 1, (64, 75))
X = np.linspace(-1, 1, data.shape[-1])
G = 1.5 * np.exp(-4 * X ** 2)

Creando gráficos de líneas

Crearemos gráficos de líneas utilizando los datos aleatorios que generamos en el paso anterior.

## Generate line plots
lines = []
for i in range(len(data)):
    ## Small reduction of the X extents to get a cheap perspective effect
    xscale = 1 - i / 200.
    ## Same for linewidth (thicker strokes on bottom)
    lw = 1.5 - i / 100.0
    line, = ax.plot(xscale * X, i + G * data[i], color="w", lw=lw)
    lines.append(line)

Estableciendo límites y eliminando marcas de graduación

En este paso, estableceremos el límite de y y eliminaremos las marcas de graduación del gráfico.

## Set y limit (or first line is cropped because of thickness)
ax.set_ylim(-1, 70)

## No ticks
ax.set_xticks([])
ax.set_yticks([])

Agregando título

Agregaremos un título a nuestro gráfico.

## 2 part titles to get different font weights
ax.text(0.5, 1.0, "MATPLOTLIB ", transform=ax.transAxes,
        ha="right", va="bottom", color="w",
        family="sans-serif", fontweight="light", fontsize=16)
ax.text(0.5, 1.0, "UNCHAINED", transform=ax.transAxes,
        ha="left", va="bottom", color="w",
        family="sans-serif", fontweight="bold", fontsize=16)

Animando el gráfico

Ahora animaremos el gráfico desplazando los datos hacia la derecha y llenando con nuevos valores.

import matplotlib.animation as animation

def update(*args):
    ## Shift all data to the right
    data[:, 1:] = data[:, :-1]

    ## Fill-in new values
    data[:, 0] = np.random.uniform(0, 1, len(data))

    ## Update data
    for i in range(len(data)):
        lines[i].set_ydata(i + G * data[i])

    ## Return modified artists
    return lines

## Construct the animation, using the update function as the animation director.
anim = animation.FuncAnimation(fig, update, interval=10, save_count=100)
plt.show()

Resumen

En este laboratorio, aprendimos los conceptos básicos de visualización de datos utilizando Matplotlib. Generamos datos aleatorios, creamos gráficos de líneas, establecimos límites y eliminamos las marcas de graduación, agregamos un título y animamos el gráfico. Estos son solo los conceptos básicos, y Matplotlib ofrece muchas más opciones para personalizar y mejorar tus visualizaciones.