Guía de histograma en Python

Cómo Hacer un Histograma en Python

Sáltate la configuración

O crea tu histograma aquí — sin instalar Python

Tus datos se quedan en tu navegador. Gratis, sin registro, funciona en móvil — descarga un PNG, SVG o CSV cuando termines.

Generador de histogramas
comas, espacios o saltos de línea
8
BarrasBorde

Gráficos recientes (guardados en este dispositivo)

Pega tus datos y pulsa Crear histograma. Tu gráfico, estadísticas resumidas y una tabla de frecuencias completa aparecerán aquí.

Genera un gráfico para ver una lectura automática de su forma, asimetría y un número recomendado de intervalos.

Estadísticas resumidas

Tabla de distribución de frecuencias

La tabla de frecuencias intervalo por intervalo aparecerá aquí después de generar un gráfico.

¿Prefieres construirlo tú mismo en la herramienta de abajo? Sigue leyendo — el paso a paso completo está aquí.

En Python, un histograma está a una línea con plt.hist(), or with seaborn’s histplot() para valores por defecto más bonitos. Abajo hay ejemplos listos para copiar de un gráfico básico, una versión de frecuencia relativa y un gráfico de seaborn con una curva suave.

1. Matplotlib: plt.hist()

Matplotlib es la librería de graficación estándar. Dale a plt.hist() una lista o array de NumPy y agrupa los valores y dibuja las barras.

Example histogram of 50 sensor readings clustered around a central value
Example output: 50 sensor readings, roughly symmetric.
Python · matplotlib
import matplotlib.pyplot as plt

plt.hist(data, bins=20, color="steelblue", edgecolor="white")
plt.title("Distribution of values")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.show()

The key argument is bins. Pasa un entero para un número aproximado de barras, una lista de bordes para control exacto, o una regla como "auto" to let NumPy decide.

Obtén los conteos de intervalos con NumPy

A veces quieres los números, no solo la imagen. numpy.histogram(data, bins=20) devuelve dos arrays — los conteos en cada intervalo y los bordes de los intervalos — sin dibujar nada. Es útil para construir tu propia tabla de frecuencias, exportar a CSV o alimentar los conteos a otro gráfico. Luego puedes pasar los mismos bins array to plt.hist() para que el gráfico y la tabla coincidan exactamente.

Choosing the number of bins

Pocos intervalos aplanan la forma; demasiados la convierten en ruido. Un punto de partida seguro es bins="auto", que usa el mayor entre las estimaciones de Sturges y Freedman–Diaconis. Para informes reproducibles, ajusta un número explícito como bins=20, or define exact edges with bins=range(0, 101, 10) so every reader sees the same intervals.

Guarda la figura para un informe

Call plt.savefig("histogram.png", dpi=300, bbox_inches="tight") before plt.show() to export a crisp, high-resolution image. Use a .svg en su lugar para una versión vectorial escalable que se mantiene nítida al imprimir.

Common Python histogram errors

Dos problemas aparecen a menudo. Primero, pasar una lista que contenga None or NaN puede distorsionar o romper el gráfico — filtra estos valores antes, por ejemplo con una comprensión de lista o data = data[~np.isnan(data)]. Second, forgetting plt.show() (fuera de un notebook) hace que la ventana nunca aparezca; en Jupyter la figura se renderiza en línea automáticamente.

2. Relative frequency (density)

To show proportions instead of raw counts, add density=True. Las barras se escalan para que el área total sea 1, que es lo que la mayoría de cursos de estadística quieren decir por un histograma de frecuencia relativa o probabilidad.

Python · density
# Relative frequency: total area sums to 1
plt.hist(data, bins=20, density=True)
plt.ylabel("Density")
plt.show()

3. seaborn: histplot()

seaborn produce gráficos más bonitos con menos esfuerzo y puede superponer una estimación de densidad kernel en la misma llamada.

Python · seaborn
import seaborn as sns

sns.histplot(data, bins=20, kde=True)  # kde adds a smooth curve
plt.show()

seaborn también facilita las comparaciones agrupadas: pasa un DataFrame y una hue columna y dibuja un histograma superpuesto codificado por color por grupo, lo cual es mucho más trabajo montar a mano en Matplotlib puro.

Just need the chart?

Si no estás en un entorno Python ahora mismo, pega tus números en el generador para un histograma instantáneo, estadísticas completas y una descarga con un clic en PNG, SVG o CSV.

Open the generador de histogramas gratis

Preguntas frecuentes

Python histogram questions

¿Cómo ajusto el número de intervalos en Matplotlib?

Pass bins= to plt.hist(). Usa un entero para un conteo, una lista para bordes exactos, o una regla como cadena tal como bins="auto" or bins="sturges" to let NumPy choose.

How do I make a relative frequency histogram in Python?

Add density=True to plt.hist() para que las barras muestren una densidad cuya área total es 1. Para proporciones exactas, pasa weights=np.ones(len(data)) / len(data).

Matplotlib or seaborn?

Matplotlib es la librería principal y te da control total. Seaborn se apoya en ella y produce valores por defecto más bonitos con menos código — sns.histplot() can even overlay a smooth KDE curve in one call.

How do I save the figure to a file?

Call plt.savefig("histogram.png", dpi=300, bbox_inches="tight") before plt.show() to export a high-resolution image for reports or print.

Keep going

Guías relacionadas