Crear histograma con ggplot en R

Jinku Hu 30 enero 2023
  1. Utilice geom_histogram para crear un histograma con ggplot en R
  2. Utilice los parámetros de fill, colour und size para modificar las imágenes del histograma en R
  3. Utilice facet_wrap para construir varios histogramas agrupados por categoría en R
Crear histograma con ggplot en R

Este artículo demostrará cómo crear un histograma con ggplot en R.

Utilice geom_histogram para crear un histograma con ggplot en R

Se construye un histograma simple usando la función geom_histogram, y solo necesita una variable para dibujar el gráfico. En este caso, utilizamos el conjunto de datos diamonds, es decir, la columna precio de él, para especificar el mapeo al eje x. geom_histogram elige automáticamente el tamaño del contenedor y los puntos de datos de escala a menos que el usuario lo pase explícitamente.

library(ggplot2)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p1

R ggplot histograma 1

El siguiente ejemplo amplía el fragmento de código anterior para especificar los puntos de interrupción en cada eje mediante las funciones scale_x_continuous y scale_y_continuous. El parámetro breaks se utiliza para pasar los valores generados por la función seq. Los parámetros seq son intuitivos de leer ya que forman el patrón - (from, to, by). También utilizamos la función grid.arrange para mostrar dos gráficos uno al lado del otro para una comparación visual.

library(ggplot2)
library(gridExtra)

p1 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram()

p2 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram() +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

grid.arrange(p1, p2, nrow = 2)

histograma 2 de ggplot

Utilice los parámetros de fill, colour und size para modificar las imágenes del histograma en R

Los parámetros comunes como fill, colour y size se pueden utilizar para cambiar la visualización de los contenedores de gráficos. El parámetro llenar especifica el color con el que se llenan los contenedores; por el contrario, se utiliza color para los trazos del contenedor. size toma un valor numérico para indicar el ancho de los trazos del contenedor. Observe también que el siguiente fragmento de código agrega el parámetro name a ambos ejes.

library(ggplot2)
library(gridExtra)

p3 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown") +
  scale_y_continuous(breaks = seq(1000, 14000, 2000)) +
  scale_x_continuous(breaks = seq(0, 18000, 2000))

p4 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous(breaks = seq(1000, 14000, 2000), name = "Number of diamonds" ) +
  scale_x_continuous(breaks = seq(0, 18000, 2000), name = "Price" )

grid.arrange(p3, p4, nrow = 2)

histograma ggplot 3

Utilice facet_wrap para construir varios histogramas agrupados por categoría en R

La función facet_wrap se puede utilizar para dibujar múltiples histogramas basados ​​en el conjunto de variables. El conjunto de datos diamonds proporciona dimensiones suficientes para elegir las variables de una de sus columnas. Por ejemplo, elegimos la columna cut para mostrar diferentes histogramas de precio para cada tipo. La función theme también se puede combinar con el geom_histogram para especificar un formato personalizado para los elementos del gráfico.

library(ggplot2)

p5 <- ggplot(diamonds, aes(x = price)) +
  geom_histogram(fill = "pink", colour = "brown", size = .3) +
  scale_y_continuous( name = "Number of diamonds" ) +
  scale_x_continuous( name = "Price" ) +
  facet_wrap(~cut) +
  theme(
    axis.title.x = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    axis.title.y = element_text(
      size = rel(1.2), lineheight = .9,
      family = "Calibri", face = "bold", colour = "black"
    ),
    plot.background = element_rect("yellow"))


p5

histograma ggplot 4

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - R Plot