• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Herramientas
    • Método D’Hondt – Atribución de escaños
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad
    • Tiendas afiliadas
      • AliExpress
      • Amazon
      • Banggood
      • GeekBuying
      • Lenovo

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • Python
  • Pandas
  • NumPy
  • Matlab
  • Julia
  • Excel
  • IA Generativa

Creación de histogramas con Matplotlib en Python

agosto 25, 2022 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

Los histogramas permiten obtener una visión general de la distribución existente en una muestra de datos. Para lo que dibuja barras asociadas a un rango de valores, siendo la altura de estas proporcional a la frecuencia de aparición de estos. Siendo una representación gráfica muy popular. Existiendo una función para dibujar histogramas con Matplotlib en Python a partir de cualquier conjunto de datos. Veamos a continuación como es el funcionamiento básico de este método.

Creación de histogramas básicos con Matplotlib

La función para la creación de histogramas en Matplotlib es hist(). Una función que solamente tiene un parámetro obligatorio, el conjunto de datos con el que se desea realizar la gráfica. Así, para comprobar el funcionamiento de esta, se puede crear un conjunto de datos aleatorio que siga la distribución normal estándar mediante la función randn() de NumPy y representarla. Siendo esto lo que se hace en el siguiente código.

import numpy as np
import matplotlib.pyplot as plt

data = np.random.RandomState(0).randn(400)

(counts, bins, patches) = plt.hist(data)
plt.xlabel("Datos")
plt.ylabel("Eventos")
plt.show()

Obteniendo como resultado la siguiente figura cuando al ejecutarlo.

Histograma básico creado con Matplotlib en Python
Histograma básico creado con Matplotlib en Python

En esta figura se puede observar que los todos datos se encuentran entre -3 y 3, con una mayor frecuencia en torno a 0. Los valores que se esperarían de una distribución normal estándar. Nótese que la función también devuelve una tupla con tres elementos relacionados con la gráfica:

Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
En Analytics Lane
Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane

  • count: un vector con el recuento de elementos para cada uno de los bins.
  • bins: un vector con los valores en los que comienza y finaliza cada uno de los bins, por lo contiene un elemento más que el anterior.
  • patches: el contendor de la figura.

Publicidad


Opciones para el número de bins y uso de la densidad

Dos opciones que se usan habitualmente a la hora de crear los histogramas con Matplotlib son bins, con la que se puede indicar el número de bins que se desea para la figura, y density, mediante el cual se puede indicar que se use para el eje y la densidad de probabilidad en lugar de la frecuencia. Por ejemplo, en el siguiente código se ha cambiado el número de bins a 12 y las unidades del eje de ordenadas.

plt.hist(data, bins=12, density=True)
plt.xlabel("Datos")
plt.ylabel("Probabilidad")
plt.show()

Si se ejecuta este código se obtiene la siguiente figura como resultado.

Histograma con 12 bins en el que se representa la frecuencia de ocurrencia
Histograma con 12 bins en el que se representa la frecuencia de ocurrencia

En este caso el cambio más importante respecto a la figura anterior es el número de bins usados. En el eje de ordenadas solamente se tiene un cambio de unidades. Nótese que si no se indica el número de bins este valor será seleccionado en base al número de elementos y la dispersión de estos.

Incluir el CDF en los histogramas con Matplotlib

Opcionalmente la función hist() puede dibujar los valores acumulados del histograma, los que se puede usar como una aproximación de la función distribución acumulada (CDF, del inglés Cumulative Distribution Function). Para lo que se te tiene que indicar el valor verdadero en la propiedad cumulative de la función, tal como se puede ver en el siguiente ejemplo.

plt.hist(data, bins=12, density=True)
plt.hist(data, bins=12, density=True, cumulative=True, label='CDF', histtype='step')
plt.xlabel("Datos")
plt.ylabel("Probabilidad")
plt.show()

Lo que produce la siguiente figura.

Histograma y gráfica con los valores de densidad acumulados creados con Matplotlib
Histograma y gráfica con los valores de densidad acumulados creados con Matplotlib

Nótese que también se ha usado la opción histtype='step' para indicar que no se rellene la barras, gracias a lo que se pueden ver tanto el histograma como la función acumulada en la misma figura.

Publicidad


Conclusiones

Los histogramas son unas gráficas bastante populares, por lo que Matplotlib dispone de una función para crearlas de una forma completamente automática. Simplificando mucho el trabajo del analista de datos.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Consistencia en nombres y orden en TypeScript: la base de un código mantenible aplicado a tslane
  • Análisis de Redes con Python
  • Nuevo calendario de publicaciones: más calidad, mejor ritmo
  • Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Publicaciones de verano 2025: los trucos más populares, ahora en vídeo
  • Cómo enviar correos desde PowerShell utilizando Brevo: Guía paso a paso para automatizar tus notificaciones
  • Nueva herramienta disponible: Calculadora del Método D’Hondt para la atribución de escaños
  • Cómo enviar correos desde Python utilizando Brevo: Automatiza tus notificaciones con scripts eficientes

Publicado en: Python Etiquetado como: Matplotlib

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

¡Nuevo video! Gráficos de barras en Matplotlib sin complicarte

julio 17, 2025 Por Daniel Rodríguez

¡Nuevo video! Iterar filas en Pandas sin romperte la cabeza

julio 15, 2025 Por Daniel Rodríguez

¡Nuevo video! Encuentra la posición en listas como un PRO

julio 10, 2025 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Obtención de valores únicos de una columna con Pandas publicado el mayo 8, 2019 | en Python
  • Cómo encontrar la posición de elementos en una lista de Python publicado el abril 12, 2021 | en Python
  • Combinar varios archivos Jupyter Notebook en uno publicado el noviembre 21, 2022 | en Python
  • Gráficos de barras en Matplotlib publicado el julio 5, 2022 | en Python
  • pandas Pandas: Cómo iterar sobre las filas de un DataFrame en Pandas publicado el septiembre 13, 2021 | en Python

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.5 (10)

Diferencias entre var y let en JavaScript

Publicidad

Comentarios recientes

  • Piera en Ecuaciones multilínea en Markdown
  • Daniel Rodríguez en Tutorial de Mypy para Principiantes
  • Javier en Tutorial de Mypy para Principiantes
  • javier en Problemas con listas mutables en Python: Cómo evitar efectos inesperados
  • soldado en Numpy básico: encontrar la posición de un elemento en un Array de Numpy

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2025 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto