Gráfico de Burbuja 2 lados en R


Los gráficos de burbuja a 2 lados son usados con frecuencia para presentar los resultados de una investigación de tipo mapeo sistemático de literatura y revisión sistemática de literatura. Este tipo de gráficos puede hacerse en distintas herramientas como Excel y RStudio. Esta entrada explica como hacer este tipo de gráfico en RStudio:

Primero, debes tener instalado ggplot2 y devtools. La libreria ggplot es la libreria  para generar gráficos personalizados en R y  devtools permitrá instalar librerias desde Github. Luego de instaladas, debes activar la libreria ggplot2:

library(gglot2)

Luego, se debe isntalar la libreria SLMRtools que contiene la función para ayudar a generar los ejes "x" y "y" en las coordenadas correctas. Para eso se debe usar el comando:

devtools::install_github('brianpando/SLMRtools')
library(SLMRtools)


Con todas las librerias listas,  ahora se debe crear el gráfico. Como ejemplo, el gráfico de arriba fue generado con la siguientes sentencias:

data<- data.frame(
  x=c(-5,-5,-5, -4,-4, -3,-3,-3,-3, -2,-2,-2,-2,-2,-2, -1,-1,-1, 1,1,1,1,1,1, 4,4,4,4,4),
  y=c(  1,3,2, 6,1, 1,3,2,5, 6,1,3,4,2,5, 1,3,5, 1,2,3,4,5,6, 1,2,3,4,5 ),
  coverage=c(17,2,3, 1,1, 6,2,3,1, 1,40,11,4,7,1, 4,2,2, 12,2,4,2,1,1, 63,23,16,6,4),
  product=c("A","A","A","B","B","C","C","C","C","D","D","D","D","D","D","E","E","E","AC","AA","AA","AA","AA","AA", "I", "I", "I", "I", "I") )
ggplot(data) + bubble2sides(data$x,data$y, ticks=10 , ylab='Languages', xlab='Contexts', x2lab='Tools', ylabels = c('EN','ES','JA','FR','PR','CA'),
                            xlabels = c('A','B','C','D','E'), x2labels = c('','Academy','','','Industry')  )+
  geom_point(aes(x = x, y = y, size=coverage, color=product, alpha=0.1)) +
  geom_text(aes(x = x, y = y,label=coverage), size=5, nudge_x=0.0, nudge_y=-0.15) +
  scale_size(range=c(2,20), breaks=c(20,60))+
  theme(legend.position = 'none')

Los datos (data) deben estar distribuidos en el cuadrante izquierda usando valores negativos en el eje "x", y en el cuadrante derecho usando valores positivos en el eje "x". El eje "y" siempre contendrá valores positivos.  la lista coverage es el que dá tamaños a las burbujas. Por ultimo con product, se dará color a las burbujas, por tanto se puede usar distintos colores para cada burbuja si se prefiere.

 

En la siguiente linea combina ggplot() + bubble2sides() + geom_point() + geom_text() + scale_size() + theme(). La función ggplot() es la encargada de generar la graficá.  La función bubble2sides() es la encargada de crear y poner los ejes x y 2 en las coordenadas correctas, es decir crea el fondo donde se pintarán las burbujas. La función  geom_point() es la funciona que pinta las burbujas en el lienzo basado en la propiedades "x" y "y" para colocarlas en las coordinadas correctas, coverage para el tamaño de la burbuja, color para pintar de un color especifico según la lista product, y un alpha para la transparencia si prefiere. Los colores puede ser cambiado usando otras combinaciones en la lista product, o podría cambiar un color solido por pintar el borde la burbuja. La función geom_text() es la que escribe el valor en la burbuja, en este ejemplo se uso el valor de covarage, podría usar el nombre del producto u otra lista de valores. La función scale_size() es la que escala el tamaño de las burbujas. Por ultimo, la función theme() es usada para quitar la leyenda que mostrará R por defecto en la parte derecha del gráfico.


Al ejecutar este ejemplo se genera el gráfico en el la ventana de gráficos de RStudio:


Ahora, hagalo usted! espero que ahora te sea más facil generar este tipo de gráfico. Si necesitas generar un gráfico de burbujas con 4 cuadrantes por favor escribeme para publicar una entrada con ese tipo de gráfico. Aegurate de que los datos en de "x, "y", "covarge" sean los correctos.



 

Comentarios

Entradas populares de este blog

Gestión de Tareas e incidentes con Bitbucket Issue Tracker

Buscar y remplazar texto de forma masiva: comandos grep & sed