En este artículo, discutiremos cómo anotar clústeres con círculo/elipse mediante una variable categórica en el lenguaje de programación R usando el paquete ggplot2.
Para agregar un círculo o una elipse alrededor de un grupo de puntos de datos, usamos las funciones geom_mark_circle() y geom_mark_ellipse() del paquete ggforce. Esta función calcula automáticamente el radio del círculo/elipse para dibujar alrededor del grupo de puntos por datos categóricos.
Primero, trazaremos los datos en un diagrama de dispersión usando la función geom_point del paquete ggplot2. Usaremos el parámetro de color de la función aes() para colorear el gráfico por un grupo de variables categóricas.
Sintaxis:
ggplot(df, aes( x, y ) ) + geom_point( aes( color ))
Argumentos:
- df: determina el marco de datos a utilizar.
- x e y: determina las variables del eje x y del eje y respectivamente.
- color: determina la variable categórica para colorear los grupos de puntos de datos.
Ejemplo:
Aquí hay un diagrama de dispersión básico hecho usando la función geom_point() del paquete ggplot2. Hemos coloreado la gráfica por el grupo de variables categóricas.
R
# load library tidyverse library(tidyverse) # set theme theme_set(theme_bw(16)) # create x and y vector xAxis <- rnorm(1000) yAxis <- rnorm(1000) + xAxis + 10 # create groups in variable using conditional # statements group <- rep(1, 1000) group[xAxis > -1.5] <- 2 group[xAxis > -0.5] <- 3 group[xAxis > 0.5] <- 4 group[xAxis > 1.5] <- 5 # create sample data frame sample_data <- data.frame(xAxis, yAxis, group) # create a scatter plot with points colored by # group ggplot(sample_data, aes(x = xAxis, y = yAxis))+ geom_point(aes(color = as.factor(group)))
Producción:
Anotar círculos alrededor del clúster:
Para anotar un círculo alrededor de un grupo de puntos por grupo, usamos la función geom_mark_circle() del paquete ggforce. Para usar esta función, primero instalamos e importamos el paquete ggforce usando:
install. packages('ggforce') library(ggforce)
Ahora, anotaremos el círculo alrededor de un grupo de puntos de datos usando la función geom_mark_circle().
Sintaxis:
ggplot(df, aes(x, y)) + geom_point(aes(color)) + geom_mark_circle(aes(color))
Ejemplo:
Aquí hay un gráfico de dispersión básico con círculos alrededor de un grupo de puntos de datos coloreados por un grupo de variables categóricas.
R
# load library tidyverse library(tidyverse) library(ggforce) # set theme theme_set(theme_bw(16)) # create x and y vector xAxis <- rnorm(500) yAxis <- rnorm(1000) + xAxis + 10 # create groups in variable using conditional # statements group <- rep(1, 500) group[xAxis > -1.5] <- 2 group[xAxis > -0.5] <- 3 group[xAxis > 0.5] <- 4 group[xAxis > 1.5] <- 5 # create sample data frame sample_data <- data.frame(xAxis, yAxis, group) # create a scatter plot with points colored by group # circles are annotated using geom_mark_circle() function ggplot(sample_data, aes(x = xAxis, y = yAxis))+ geom_point(aes(color = as.factor(group)))+ geom_mark_circle(aes(color = as.factor(group)), expand = unit(0.5,"mm"))+ theme(legend.position = "none")
Producción:
Anote puntos suspensivos alrededor del clúster:
Para anotar una elipse alrededor de un grupo de puntos por grupo, usamos la función geom_mark_ellipse() del paquete ggforce. Esta función calcula automáticamente las dimensiones de la elipse y las superpone sobre el diagrama de dispersión.
Sintaxis:
ggplot(df, aes(x, y)) + geom_point(aes(color)) + geom_mark_ellipse(aes(color))
Ejemplo:
Aquí, hay un gráfico de dispersión básico con elipses alrededor de un grupo de puntos de datos coloreados por un grupo de variables categóricas.
R
# load library tidyverse library(tidyverse) library(ggforce) # set theme theme_set(theme_bw(16)) # create x and y vector xAxis <- rnorm(500) yAxis <- rnorm(1000) + xAxis + 10 # create groups in variable using conditional # statements group <- rep(1, 500) group[xAxis > -1.5] <- 2 group[xAxis > -0.5] <- 3 group[xAxis > 0.5] <- 4 group[xAxis > 1.5] <- 5 # create sample data frame sample_data <- data.frame(xAxis, yAxis, group) # create a scatter plot with points colored by group # ellipses are annotated using geom_mark_ellipse() function ggplot(sample_data, aes(x = xAxis, y = yAxis))+ geom_point(aes(color = as.factor(group)))+ geom_mark_ellipse(aes(color = as.factor(group)), expand = unit(0.5,"mm"))+ theme(legend.position = "none")
Producción:
Personalizando la estética
Podemos personalizar la estética de la función geom_mark_* usando la propiedad de color, relleno y alfa de la función aes().
Sintaxis:
ggplot(df, aes( x, y ) ) + geom_point( aes( color )) + geom_mark_ellipse( aes(color, relleno, alfa) )
dónde,
- color: determina el color del límite de los círculos o elipses.
- relleno: determina el color de fondo de los círculos o elipses.
- alfa: determina la transparencia de los círculos o elipses.
Ejemplo:
En este ejemplo, trazaremos un diagrama de dispersión superpuesto por elipses con un fondo coloreado por la variable categórica de grupo.
R
# load library tidyverse library(tidyverse) library(ggforce) # set theme theme_set(theme_bw(16)) # create x and y vector xAxis <- rnorm(500) yAxis <- rnorm(1000) + xAxis + 10 # create groups in variable using conditional # statements group <- rep(1, 500) group[xAxis > -1.5] <- 2 group[xAxis > -0.5] <- 3 group[xAxis > 0.5] <- 4 group[xAxis > 1.5] <- 5 # create sample data frame sample_data <- data.frame(xAxis, yAxis, group) # create a scatter plot with points colored by group # ellipses are annotated using geom_mark_ellipse() function ggplot(sample_data, aes(x = xAxis, y = yAxis))+ geom_point(aes(color = as.factor(group)))+ geom_mark_ellipse(aes(fill = as.factor(group)), expand = unit(0.5,"mm"))+ theme(legend.position = "none")
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