Crear histograma con ggplot en R
-
Utilice
geom_histogram
para crear un histograma conggplot
en R -
Utilice los parámetros de
fill
,colour
undsize
para modificar las imágenes del histograma en R -
Utilice
facet_wrap
para construir varios histogramas agrupados por categoría 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
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)
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)
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
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