Histogramas por defecto en R base y en ggplot2

Los histogramas por defecto en ggplot2 y en R base son diferentes, ya que ggplot2 utiliza 30 clases mientras que la función hist de R base usa el método de Sturges para calcular el número de clases.

Como puedes ver, los histogramas de ggplot2 tienden a tener demasiadas clases por defecto. Puedes cambiar el ancho de las barras o el número de clases al valor que quieras.

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

# Datos
set.seed(3)
x <- rnorm(450)
df <- data.frame(x)

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

Histograma por defecto en ggplot2

Los histogramas por defecto con la función hist son más adecuados, ya que se utiliza el método de Sturges.

# Datos
set.seed(3)
x <- rnorm(450)
df <- data.frame(x)

# Histograma por defecto en R base
hist(x)

Histograma por defecto en R base

Método de Sturges

Si quieres crear un histograma en ggplot2 que use el método de Sturges puedes calcular los puntos de corte de la siguiente manera y pasarlos al argumento breaks.

Histograma en ggplot2 con el método de Sturges

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

# Datos
set.seed(3)
x <- rnorm(450)
df <- data.frame(x)

# Calcular los puntos de corte
breaks <- pretty(range(x),
                 n = nclass.Sturges(x),
                 min.n = 1)
df$breaks <- breaks

# Histograma con el método de Sturges
ggplot(df, aes(x = x)) + 
  geom_histogram(color = 1, fill = "white",
                 breaks = breaks) +
  ggtitle("Método de Sturges")

También te puede interesar