Saltar al contenido principal
InicioTutorialesProgramación R

Cómo hacer un histograma en R básico: 6 pasos con ejemplos

Aprende a crear un histograma con R básico utilizando la función hist(). En 6 sencillos pasos (con ejemplos) puedes hacer un histograma básico en R para un análisis exploratorio.
23 feb 2024  · 10 min leer

En este tutorial, visualizaremos distribuciones de datos trazando histogramas utilizando el lenguaje de programación R. Trataremos qué es un histograma, cómo leer datos en R, cómo crear un histograma y cómo personalizar el gráfico. 

Utilizaremos el lenguaje de programación básico R sin paquetes adicionales. Este enfoque sólo se recomienda cuando no se pueden utilizar paquetes adicionales o para análisis exploratorios rápidos. En la mayoría de los casos, debes utilizar ggplot2, como se explica en el tutorial Cómo hacer un histograma en R con ggplot2.

Practica cómo hacer un histograma en R con este ejercicio práctico.

¿Qué es un histograma?

Un histograma es un gráfico muy popular que se utiliza para mostrar distribuciones de frecuencias en variables continuas (numéricas). Los histogramas nos permiten ver el recuento de observaciones de los datos dentro de los rangos que abarca la variable.

Los histogramas tienen un aspecto similar a los gráficos de barras. Una diferencia clave entre ambos es que los gráficos de barras tienen un valor asociado a una categoría específica o variable discreta, mientras que un histograma visualiza frecuencias de variables continuas. 

Datos de vivienda

Utilizaremos este conjunto de datos sobre viviendas, que incluye detalles sobre distintos listados de casas, como el tamaño de la casa, el número de habitaciones, el precio e información sobre la ubicación. Podemos leer los datos utilizando la función read.csv(), directamente desde la URL o descargando el archivo csv en un directorio y leyéndolo desde nuestro almacenamiento local. También podemos especificar que sólo queremos almacenar las columnas que nos interesan para este tutorial: precio y condición.  

home_data <- read.csv("https://raw.githubusercontent.com/rashida048/Datasets/master/home_data.csv")[ ,c('price', 'condition')]

Veamos las primeras filas de datos utilizando la función head()

head(home_data, 5)

image11.png

Cómo hacer un histograma con R básico utilizando la función hist()

A continuación, crearemos un histograma utilizando la función hist() para observar la distribución de los precios en nuestro conjunto de datos. 

hist(home_data$price)

imagen1.png
Añade estadísticas descriptivas al histograma

Podemos añadir estadísticas descriptivas al histograma utilizando la función abline(). Esto añade una línea vertical al gráfico. 

  • Establece el argumento v en la posición en el eje x para la línea vertical. Aquí, obtenemos el precio medio de la vivienda utilizando mean()
  • El argumento col establece el color de la línea, en este caso rojo.
  • El argumento lwd establece la anchura de la línea. Un valor de 3 aumenta el grosor de la línea para que sea más fácil de ver.
hist(home_data$price)

abline(v = mean(home_data$price), col='red', lwd = 3)

Trazar densidades de probabilidad en lugar de recuentos

Para añadir una línea de densidad de probabilidad al histograma, primero cambiamos el eje y para que se escale a la densidad. En la llamada a hist(), establecemos el argumento probability en TRUE.

La línea de densidad de probabilidad se hace con una combinación de density(), que calcula la posición de la curva de densidad de probabilidad, y lines(), que añade la línea al gráfico existente. 

hist(home_data$price, probability = TRUE)
abline(v = mean(home_data$price), col='red', lwd = 3)
lines(density(home_data$price), col = 'green', lwd = 3)

image6.png

Observa que los números del eje y han cambiado.

Personaliza el color del histograma utilizando col 

Podemos cambiar los colores dentro de los bins del histograma utilizando el parámetro col de la función hist(). Cambiaremos el relleno a azul. También podemos cambiar el color del contorno de las barras utilizando el parámetro borde. Cambiaremos el color de los contornos a blanco.  

hist(home_data$price, col = 'blue', border = "white")

image9.png

Añade etiquetas y títulos con ylab, xlab y main

Podemos cambiar las etiquetas de la trama para hacerla más legible y presentable. Esto es útil si compartes la trama con otras personas.

  •  xlab establece la etiqueta del eje x
  •  ylab establece la etiqueta del eje y
  •  main establece el título de la trama
hist(home_data$price, xlab = 'Price (USD)', ylab = 'Number of Listings', main = 'Distribution of House Prices')

image8.png

Empieza a aprender R gratis

Visualization Best Practices in R

BeginnerSkill Level
4 hr
17.2K learners
Learn to effectively convey your data with an overview of common charts, alternative visualization types, and perception-driven style enhancements.
See DetailsRight Arrow

Actualiza el binning mediante breaks

Con los argumentos por defecto, es difícil ver la distribución completa de los precios de la vivienda en toda la gama de precios. Podemos ver que están centralizados en las primeras ubicaciones, pero no son muy descriptivos. 

Podemos añadir más bins utilizando el parámetro breaks. Con este argumento, podemos pasar un vector de puntos de ruptura específicos a utilizar, una función para calcular los puntos de ruptura, un número de rupturas que deseemos o una función para calcular el número de celdas. 

Para este ejemplo, pasaremos el número de contenedores que queramos. Este número depende del contexto y de lo que intentes mostrar en tu gráfico.

hist(home_data$price, breaks = 100)

image2.png

Con breaks fijado en 100, tenemos mucha más visibilidad de la distribución en los primeros cubos. 

También podemos especificar el número de roturas utilizando los nombres de los cálculos habituales para calcular las roturas óptimas en un histograma. Por defecto, hist() utiliza el método “Sturges” (es opcional pasarlo como argumento porque es el predeterminado). 

hist(home_data$price, breaks = "Sturges")

image4.png

También podemos pasar “Scott” como argumento del atributo breaks para utilizar el Método Scott. 

hist(home_data$price, breaks = "Scott")

image10.png

Por último, también podríamos utilizar el método Freedman-Diaconis (FD). 

hist(home_data$price, breaks = "Freedman-Diaconis")

image5.png

Fijar los límites del eje x

Podemos fijar los límites del eje x de nuestro gráfico utilizando el argumento xlim para ampliar los datos que nos interesan. Por ejemplo, a veces es útil centrarse en la parte central de la distribución, en lugar de en la larga cola que vemos actualmente cuando vemos todo el gráfico. 

También es posible cambiar los límites del eje y (utilizando el argumento ylim ), pero esto es menos útil para los histogramas, ya que los valores calculados automáticamente son casi siempre ideales.

Nos centraremos en los precios entre 0 y 2 millones de dólares.

hist(home_data$price, breaks = 100, xlim = c(0, 2000000))

image3.png

Llévalo al siguiente nivel

A medida que te sientas más cómodo con R, podrás explorar paquetes más potentes que faciliten la creación de visualizaciones más interesantes y útiles. Una biblioteca muy popular y fácil de usar para trazar gráficos en R se llama ggplot2. A continuación creamos una interesante vista de las distribuciones de los precios en función del número de dormitorios de la casa.  


image7.png

ggplot2 es la mejor forma de visualizar datos en R, y puedes aprender a utilizarlo para crear histogramas en el tutorial Cómo hacer un histograma en R en ggplot2. Consulta nuestro curso Introducción a ggplot2 y nuestro curso intermedio de ggplot2 para aprender a hacer visualizaciones más interesantes en R. 

En resumen

En este tutorial, aprendimos que los histogramas son estupendas visualizaciones para observar distribuciones de variables continuas. Hemos aprendido a hacer un histograma en R, a trazar estadísticos de resumen encima de nuestro histograma, a personalizar características del gráfico como los títulos de los ejes, el color, cómo colocamos el eje x y cómo establecer límites en los ejes. Por último, demostramos parte de la potencia de la biblioteca ggplot2.

 Otras lecturas y recursos para el trazado de histogramas en R:

  1. Introducción a la visualización de datos con ggplot2
  2. Visualización intermedia de datos con ggplot2

    



Temas

Cursos R

Course

Introduction to R

4 hr
2.8M
Master the basics of data analysis in R, including vectors, lists, and data frames, and practice R with real data sets.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

tutorial

Cómo hacer un histograma ggplot2 en R

Aprenda a hacer un histograma ggplot2 en R. Haga histogramas en R basándose en la gramática de los gráficos.

Kevin Babitz

15 min

tutorial

Tutorial de regresión lineal en R

En este tutorial aprenderás los fundamentos de un modelo estadístico muy popular: la regresión lineal.

Eladio Montero Porras

15 min

tutorial

Histogramas en Matplotlib

Aprende sobre histogramas y cómo puedes utilizarlos para obtener información de los datos con la ayuda de matplotlib.

Aditya Sharma

8 min

tutorial

Tutorial sobre el uso de funciones en R

Descubra qué son las funciones R, los diferentes tipos de funciones en R y cómo crear sus propias funciones en R.

tutorial

Regresión lineal múltiple en R: tutorial con ejemplos

Una visión completa para entender las regresiones lineales múltiples en R a través de ejemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

tutorial

A Loops in R Tutorial - Uso y Alternativas

Un tutorial sobre bucles en R que examina las construcciones disponibles en R para realizar bucles. Descubra alternativas utilizando la función de vectorización de R.
Carlo Fanara's photo

Carlo Fanara

32 min

See MoreSee More