¿Cómo hacer un diagrama de Lollipop en R con ggplot2?

Un diagrama de piruleta es la combinación de una línea y un punto. Muestra la relación entre una variable numérica y categórica como un diagrama de barras. Se puede usar un diagrama de piruleta en los lugares donde se requieren un diagrama de barras y un diagrama de dispersión. Este gráfico único nos ayuda a visualizar mejor el problema y ocupa menos espacio de tinta que los gráficos de barras tradicionales.

En ggplot2, creamos un diagrama de piruleta concatenando las funciones geom_segment() y geom_point() .

Sintaxis: ggplot(data, aes(x=x, y=y)) + geom_segment() +geom_point( )  

Creando una trama básica de piruletas

R

# Create sample data
set.seed(5642)                             
sample_data <- data.frame(name=c("Geek1","Geek2",
                                 "Geek3","Geek4",
                                 "Geeek5") ,
                            
                          value=c(31,12,15,28,45)) 
  
# Load ggplot2 
library("ggplot2") 
# Create lollipop plot
ggplot(sample_data, aes(x=name, y=value)) +
geom_segment( aes(x=name, xend=name, y=0, yend=value)) +
geom_point(size=4)

Producción:

Agregar anotación al diagrama de piruleta

Para agregar anotaciones al diagrama de piruleta ggplot2, usamos la función geom_label():

Sintaxis: geom_label(aes(nombre, valor, etiqueta = signif(valor)), color, nudge_x, tamaño)

Aquí, 

  • color: determina el color de las anotaciones
  • nudge_x: determina el desplazamiento x de las anotaciones
  • tamaño: determina el tamaño de las anotaciones

Código:

R

# Create sample data
set.seed(5642)                             
sample_data <- data.frame(name=c("Geek1","Geek2","Geek3","Geek4","Geeek5") ,
                          value=c(31,12,15,28,45)) 
  
# Load ggplot2 
library("ggplot2") 
  
# Create lollipop plot with annotations
ggplot(sample_data, aes(x=name, y=value)) +
geom_segment( aes(x=name, xend=name, y=0, yend=value)) +
geom_point(size=4) +
geom_label(aes(name, value , label = signif(value)), 
           colour = "darkred", nudge_x = 0.35, size = 4)

Producción:

Personaliza la trama

Para personalizar este gráfico, podemos cambiar el color del segmento y el punto usando la propiedad de relleno. También podemos cambiar el tamaño del punto usando la propiedad de tamaño. Para agregar color a geom_segment(), agregamos una propiedad de color con el color deseado y agregamos una propiedad de tamaño para el grosor del segmento. Para agregar color a geom_point(), agregamos una propiedad de color con el color deseado y agregamos una propiedad de tamaño para aumentar el tamaño del punto.

R

# Create sample data
set.seed(5642)                             
sample_data <- data.frame(name=c("Geek1","Geek2","Geek3",
                                 "Geek4","Geeek5") ,
                          value=c(31,12,15,28,45)) 
  
# Load ggplot2 
library("ggplot2") 
  
# Create lollipop plot with custom colors
ggplot(sample_data, aes(x=name, y=value)) +
geom_segment( aes(x=name, xend=name, y=0, yend=value), 
             color="red", size=3) +
geom_point( color="green", size=10)

Producción:

Reordenar diagrama de piruleta

Podemos reordenar el diagrama de piruleta usando la función reorder() con valor como base.

Sintaxis: ggplot(sample_data, aes(x=reordenar(nombre,valor),y=valor))

Agregamos la función de reordenación en el parámetro de estética para reordenar nuestro marco de datos en orden ascendente con una base de valor.

R

# Create sample data
set.seed(5642)                             
sample_data <- data.frame(name=c("Geek1","Geek2","Geek3",
                                 "Geek4","Geeek5") ,
                          value=c(31,12,15,28,45)) 
  
# Load ggplot2 
library("ggplot2") 
  
# Create lollipop plot with reordered data
ggplot(sample_data, aes(x=reorder(name,value),y=value)) +
  geom_point(size = 3, colour = "black") + 
  geom_segment(aes(xend = name, yend = 0), size = 1.2)

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 *