Agregue una línea para el promedio por grupo usando el paquete ggplot2 en R

En este artículo, discutiremos cómo agregar una línea para el promedio por grupo en un gráfico de dispersión en el lenguaje de programación R.

En R Language, podemos hacerlo creando un vector medio usando la función group_by() y summarise( ) . Luego podemos usar ese vector medio junto con la función geom_hline() del paquete ggplot2 para crear una línea por el punto medio coloreado por el grupo.

Para crear un vector medio a partir del marco de datos,

Sintaxis:

mean <- df %>% 
group_by( <categorical-variable> ) %>% 
summarise( mean_val = mean( <quantitative-variable> )

Argumentos:

  • df: determina el marco de datos a utilizar.
  • <variable-categórica>: determina la variable que se utiliza para dividir los datos en grupos.
  • <variable-cuantitativa>: determina la variable cuya media se quiere encontrar.

Esta expresión crea un vector con dos columnas, es decir, <variable-categórica> y la media que almacena la media por categoría. Ahora, usaremos este vector medio con la función geom_hline() para agregar una línea horizontal en la media/promedio de datos coloreados por variable categórica.

Sintaxis:

plot + geom_hline( mean_df, aes( yintercept, col )

Argumentos :

  • mean_df: determina el marco de datos que contiene información media.
  • yintercept: determina la columna media variable en el marco de datos.
  • col: determina la variable categórica por la cual se debe colorear la línea.

Ejemplo 1:

Aquí, en este ejemplo, hemos creado un diagrama de dispersión coloreado por una variable categórica. Luego hemos agregado una línea coloreada por la misma variable que pasa por la media de esa categoría de datos.

R

# load library tidyverse
library(tidyverse)
 
# create dataframe
df <- data.frame(
    group=factor(rep(c("category1", "category2","category3"),
                        each=100)),
    y=round(c(rnorm(100, mean=65, sd=5),
                  rnorm(100, mean=85, sd=5),
                 rnorm(100, mean=105, sd=5))),
    x=rnorm(300))
 
# create mean by group
mean <- df%>% group_by(group)%>%summarise(mean_val=mean(y))
 
# create ggplot scatter plot
# add horizontal line overlay at mean using geom_hline()
ggplot(data = df, aes(x= x, y=y)) +
geom_point(aes(colour = group)) +
geom_hline(data= mean, aes(yintercept = mean_val,col=group))

Producción:

Ejemplo 2:

En este ejemplo, hemos creado un diagrama de dispersión coloreado por una variable categórica. Luego hemos agregado una línea coloreada por la misma variable que pasa por la media de esa categoría de datos. También hemos agregado un facet_grid() para convertir este gráfico en un gráfico de facetas para visualizar mejor los datos a través de una variable categórica.

R

# load library tidyverse
library(tidyverse)
 
# create dataframe
df <- data.frame(
    group=factor(rep(c("category1", "category2","category3"),
                        each=100)),
    y=round(c(rnorm(100, mean=65, sd=5),
                  rnorm(100, mean=55, sd=5),
                 rnorm(100, mean=60, sd=5))),
    x=rnorm(300))
 
# create mean by group
mean <- df%>% group_by(group)%>%summarise(mean_val=mean(y))
 
# create ggplot scatter plot
# add horizontal line overlay at mean using geom_hline()
# divide plot in facet using function facet_grid()
ggplot(data = df, aes(x= x, y=y)) +
geom_point(aes(colour = group)) +
geom_hline(data= mean, aes(yintercept = mean_val,col=group))+
facet_grid(~group)

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 *