Tutorial de histogramas escalonados 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

Matplotlib es una biblioteca de visualización de datos en Python. Se utiliza ampliamente para crear una amplia variedad de visualizaciones como diagramas de líneas, diagramas de dispersión, diagramas de barras, histogramas y más. En este tutorial, nos centraremos en la creación de histogramas paso a paso utilizando 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 su retroalimentación después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas y módulos necesarios

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.patches import StepPatch

Preparar los datos

np.random.seed(0)
h, edges = np.histogram(np.random.normal(5, 3, 5000),
                        bins=np.linspace(0, 10, 20))

Crear un histograma de escalón simple

plt.stairs(h, edges, label='Simple histogram')
plt.legend()
plt.show()

Modificar la línea base del histograma de escalón

plt.stairs(h, edges + 5, baseline=50, label='Modified baseline')
plt.legend()
plt.show()

Crear un histograma de escalón sin bordes

plt.stairs(h, edges + 10, baseline=None, label='No edges')
plt.legend()
plt.show()

Crear un histograma relleno

plt.stairs(np.arange(1, 6, 1), fill=True,
              label='Filled histogram\nw/ automatic edges')
plt.legend()
plt.show()

Crear un histograma con sombreado

plt.stairs(np.arange(1, 6, 1)*0.3, np.arange(2, 8, 1),
              orientation='horizontal', hatch='//',
              label='Hatched histogram\nw/ horizontal orientation')
plt.legend()
plt.show()

Crear un artista StepPatch

patch = StepPatch(values=[1, 2, 3, 2, 1],
                  edges=range(1, 7),
                  label=('Patch derived underlying object\n'
                         'with default edge/facecolor behaviour'))
plt.gca().add_patch(patch)
plt.xlim(0, 7)
plt.ylim(-1, 5)
plt.legend()
plt.show()

Crear histogramas apilados

A = [[0, 0, 0],
     [1, 2, 3],
     [2, 4, 6],
     [3, 6, 9]]

for i in range(len(A) - 1):
    plt.stairs(A[i+1], baseline=A[i], fill=True)
plt.show()

Comparar .pyplot.step y .pyplot.stairs

bins = np.arange(14)
centers = bins[:-1] + np.diff(bins) / 2
y = np.sin(centers / 2)

plt.step(bins[:-1], y, where='post', label='step(where="post")')
plt.plot(bins[:-1], y, 'o--', color='grey', alpha=0.3)

plt.stairs(y - 1, bins, baseline=None, label='stairs()')
plt.plot(centers, y - 1, 'o--', color='grey', alpha=0.3)
plt.plot(np.repeat(bins, 2), np.hstack([y[0], np.repeat(y, 2), y[-1]]) - 1,
         'o', color='red', alpha=0.2)

plt.legend()
plt.title('step() vs. stairs()')
plt.show()

Resumen

Este tutorial cubrió los conceptos básicos de creación de histogramas escalonados utilizando Matplotlib. Aprendimos cómo crear histogramas escalonados simples, modificar la línea base de los histogramas, crear histogramas rellenos y con sombreado, y crear histogramas apilados. También comparamos las diferencias entre .pyplot.step y .pyplot.stairs.