Cómo agregar líneas verticales por una variable en gráficos de densidad múltiple con ggplot2 en R

En este artículo, discutiremos cómo agregar líneas verticales por una variable en gráficos de densidad múltiple con el paquete ggplot2 en el lenguaje de programación R. 

Para hacerlo, primero crearemos gráficos de densidad múltiple coloreados por grupo y luego agregaremos la línea como un elemento separado.

Gráfica básica de densidad múltiple:

Para hacer gráficos de densidades múltiples con colores por variable en R con ggplot2, primero creamos un marco de datos con valores y categoría. Luego dibujamos el gráfico de densidad ggplot2 usando la función geom_desnity(). Para colorearlos según la variable agregamos la propiedad de relleno como categoría en la función ggplot().

Sintaxis: 

ggplot(marco de datos, aes(x, color, relleno)) + geom_density()

Ejemplo:

Obtenemos gráficos de densidad múltiple en el ggplot de dos colores correspondientes a dos niveles/valores para la segunda variable categórica. Si nuestra variable categórica tiene n niveles, entonces ggplot2 haría gráficos de densidad múltiple con n densidades/color.

R

# load library
library(tidyverse)
  
set.seed(1234)
  
# create the dataframe
df <- data.frame(
    category=factor(rep(c("category1", "category2","category3"),
                        each=1000)),
    value=round(c(rnorm(1000, mean=65, sd=5),
                  rnorm(1000, mean=85, sd=5),
                 rnorm(1000, mean=105, sd=5))))
  
  
  
# Basic density plot with custom color
# color property to determine the color of plot
# fill property to determine the color beneath plot
ggplot(df, aes(x=value, color=category, fill=category)) +
geom_density(alpha=0.3)

Producción:

Adición de línea por una variable

Para agregar una línea por una variable para trazar, cree una nueva mediana de marco de datos en un marco de datos que almacene la mediana de valores agrupados por categorías. Luego use la función geom_vline para dibujar una línea a través de ese punto coloreada por categoría de datos.

Sintaxis:

plot + geom_vline(marco de datos, aes(xintercept, color), tamaño)

Ejemplo:

Aquí, hemos calculado la mediana de los valores agrupados por categoría y la hemos almacenado en un marco de datos llamado mediana. Luego usó la función geom_vline() para dibujar una línea a través de la gráfica en ese punto coloreado según la categoría de datos.

Para crear un marco de datos mediano que usamos,

median <- df %>%
             group_by(category) %>%
             summarize(median=median(value))

El marco de datos mediano hecho de group_by y la función de resumen se ve así:

# A tibble: 3 x 2
 category  median
 <fct>      <dbl>
1 category1     65
2 category2     85
3 category3    105

R

# load library
library(tidyverse)
  
set.seed(1234)
df <- data.frame(
    category=factor(rep(c("category1", "category2","category3"), 
                        each=1000)),
    value=round(c(rnorm(1000, mean=65, sd=5),
                  rnorm(1000, mean=85, sd=5),
                 rnorm(1000, mean=105, sd=5))))
  
  
# create median data using above dataframe
# group_by function groups the data of same category
# summarize function with median
# argument calculates the median of value column
median <- df %>%
  group_by(category) %>%
  summarize(median=median(value))
  
  
# Basic density plot with custom color
# color property to determine the color of plot
# fill property to determine the color beneath plot
# geom_vline function draws the line across median 
# of each group
ggplot(df, aes(x=value, color=category, fill=category)) +
geom_density(alpha=0.3)+
  geom_vline(data = median, aes(xintercept = median, 
                                       color = category), size=0.5)

Producción:

Publicación traducida automáticamente

Artículo escrito por mishrapriyank17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *