¿Cómo crear un diagrama de bosque en R?

En este artículo, discutiremos cómo crear un diagrama de bosque en el lenguaje de programación R.

Un diagrama de bosque también se conoce como blobbogram. Nos ayuda a visualizar los resultados estimados de una cierta cantidad de estudios junto con los resultados generales en una sola parcela. Se utiliza ampliamente en la investigación médica para visualizar un metanálisis de los resultados de ensayos controlados aleatorios. El eje x de la gráfica contiene el valor del interés en los estudios y el eje y muestra los resultados de los diferentes ensayos.

Para crear un diagrama de bosque en el lenguaje R, usamos una combinación de diagramas de dispersión junto con la barra de error. La función geom_point() del paquete ggplot nos ayuda a crear un diagrama de dispersión. Para crear un diagrama de barras de error como una superposición sobre el diagrama de dispersión, usamos la función geom_errorbarh(). La función geom_errorbarh() se utiliza para dibujar un gráfico de barra de error horizontal.

Sintaxis:

ggplot(datos, aes(y, x, xmin, xmax)) + geom_point() + geom_errorbarh(altura)

Parámetro:

  • datos: determina el marco de datos que se utilizará para el trazado.
  • x e y: determina las variables de los ejes
  • xmin y xmax: determina los límites del eje x
  • altura: determina el ancho de la barra de error

Ejemplo: Forest plot básico.

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result,
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)

Producción:

Agregar título y cambiar la etiqueta del eje de la trama

Para agregar el título a la trama, usamos el argumento de título de la función labs() del lenguaje R. También podemos cambiar las etiquetas de los ejes del eje x y del eje y usando los argumentos x e y de la función labs() respectivamente. 

Sintaxis:

plot() + labs(título, x, y)

Parámetro:

title: determina el título de la trama.

x e y: determina los títulos de los ejes para el eje x y el eje y respectivamente.

Ejemplo: Parcela forestal con un título personalizado para la parcela y ambos ejes.

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title='Title Of Plot', x='X-axis Title', y = 'Y-axis Title')

Producción:

Agregar una línea vertical a la parcela

Para agregar una línea vertical al gráfico como una superposición en el lenguaje R mediante la función geom_vline(). Podemos agregar una línea vertical en el gráfico para mostrar la posición de cero para una mejor visualización de los datos. Podemos usar el argumento xintercept, linetype, color y alpha de la función geom_vline() para personalizar la posición, la forma de la línea, el color y la transparencia de la línea vertical, respectivamente.

Sintaxis:

plot + geom_vline( xintercept, linetype, color, alpha )

Parámetro:

  • xintercept: determina la posición de la línea en el eje x.
  • tipo de línea: determina la forma de la línea.
  • color: determina el color de la línea.
  • alfa: determina la transparencia de la línea.

Ejemplo: diagrama de bosque con una línea vertical en x=0.

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result,
                             xmin=error_lower, 
                             xmax=error_upper)) +
  geom_point() + 
  geom_errorbarh(height=.1) +
  scale_y_continuous(labels=sample_data$study)+
  geom_vline(xintercept=0, color='green', linetype='dashed', alpha=.8)

Producción:

Personalización de Forest Plot

Para personalizar el diagrama de bosque, podemos cambiar el color y la forma de la barra y el punto para que sea más informativo y estéticamente agradable. Para cambiar color y tamaño podemos usar argumentos estéticos básicos como color, lwd, pch, etc.

Sintaxis:

ggplot(datos, aes(y, x, xmin, xmax)) + geom_errorbarh(altura, color, lwd) + geom_point(color, pch, tamaño)

Parámetro:

  • color: determina el color del punto o barra de error
  • lwd: determina el ancho de línea de la barra de error
  • pch: determina la forma del punto.

Ejemplo:

Aquí, hay un diagrama de bosque completamente personalizado.

R

# create sample data
sample_data <- data.frame(study=c('G1', 'G2', 'G3', 'G4', 'G5'),
                 index=1:5,
                 result=c(-.23, -.45, -.16, .6, .65),
                 error_lower=c(-.35, -.59, -.37, -.12, .24),
                 error_upper=c(-.17, -.25, -.03, .82, .91))
  
#load library ggplot2
library(ggplot2)
  
#create forest plot
ggplot(data=sample_data, aes(y=index, x=result, 
                             xmin=error_lower, 
                             xmax=error_upper)) + 
  geom_errorbarh(height=.1, color= "green", lwd=1.2) +
  geom_point( color= "red", pch= 9, size=3) +
  scale_y_continuous(labels=sample_data$study)+
  labs(title="Forest Plot")+
  geom_vline(xintercept=0, color='blue', linetype='dashed', alpha=.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 *