Número y ancho de las barras o clases de un histograma en ggplot2

Histograma por defecto

Por defecto, los cálculos para crear un histograma con geom_histogram a través de stat_bin usan 30 barras o clases, lo que no es siempre un buen valor por defecto.

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(05022021)
x <- rnorm(600)
df <- data.frame(x)

# Histograma por defecto
ggplot(df, aes(x = x)) + 
  geom_histogram()

Número de clases o barras por defecto en ggplot2

Esta es la razón por la que recibes el siguiente mensaje cada vez que creas un histograma por defecto en ggplot2:

stat_bin() using bins = 30. Pick better value with binwidth.

Las posibles opciones para solucionar este problema son seleccionar el número de clases o barras con el argumento bins o modificar el ancho de cada barra con el argumento binwidth.

El argumento bins

El número de clases o barras del histograma se puede personalizar con el argumento bins de la función geom_histogram. En este ejemplo 15 clases parece una buena elección mientras que 50 son demasiadas.

Selección del número de clases de un histograma en ggplot2

15 clases

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(05022021)
x <- rnorm(600)
df <- data.frame(x)

# Clases del histograma
ggplot(df, aes(x = x)) + 
  geom_histogram(colour = 4, fill = "white", 
                 bins = 15)

Controlar el número de barras de un histograma en ggplot2

50 clases

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(05022021)
x <- rnorm(600)
df <- data.frame(x)

# Clases del histograma
ggplot(df, aes(x = x)) + 
  geom_histogram(colour = 4, fill = "white", 
                 bins = 50)

El argumento binwidth

La otra opción es usar el argumento binwidth de la función geom_histogram. Este argumento controla el ancho de cada barra sobre el eje X. Ten en cuenta que este argumento sobrescribe al argumento bins.

Binwidth de 0.5

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(05022021)
x <- rnorm(600)
df <- data.frame(x)

# Ancho de las barras del histograma
ggplot(df, aes(x = x)) + 
  geom_histogram(colour = 4, fill = "white", 
                 binwidth = 0.5)

Controlar el ancho de las barras de un histograma de ggplot2

Binwidth de 0.15

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(05022021)
x <- rnorm(600)
df <- data.frame(x)

# Ancho de las barras del histograma
ggplot(df, aes(x = x)) + 
  geom_histogram(colour = 4, fill = "white", 
                 binwidth = 0.15)

Argumento binwidth de la función geom_histogram

La función hist de R base usa el método de Sturges para calcular el número de clases, siendo este un buen valor por defecto.

Better Data Visualizations

A Guide for Scholars, Researchers, and Wonks

Comprar en Amazon
ggplot2

Elegant Graphics for Data Analysis

Comprar en Amazon
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon

También te puede interesar