es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo incluir subíndices en los títulos de los gráficos usando ggplot2?

Estoy tratando de añadir etiquetas de gráfico como títulos en gráficos combinados por ggarrange. Mi etiqueta contiene paréntesis y subíndices. He encontrado que usando expression('Mi volumen [m^3/ha]') puedo manejar ambos, lo cual funciona perfectamente si se coloca como etiqueta x o y (ylab(expression('Mi volumen [m^3/ha]'))).

Sin embargo, cuando uso el mismo enfoque usando ggarrange para combinar diferentes gráficos, y deseando nombrarlos a) y b), el nombre imprime también comillas:

enter image description here

¿Cómo puedo escribir correctamente la expresión, o usando el enfoque paste('..', '..') para que las comillas no sean visibles?

Ejemplo ficticio para crear varios gráficos y trazarlos usando ggarrange:

p1 <- ggplot(cars, aes(x=speed, y=dist)) + geom_point() + geom_smooth() 
p2 <- p1

ggarrange(p1, p2, 
          nrow = 2, ncol = 1,  
          common.legend = TRUE,
          legend="bottom",
          labels=list(paste("a) ", 'Mi tasa [%]'),
                     paste('b)'), expression('Mi volumen [m^3/ha]')), # ¿Cómo cambiar esto???
          align = c("hv"),
          font.label = list(size = 10, 
                            face = "plain", 
                            color ="black"))

Resultado etiquetado incorrecto b):

enter image description here

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear etiquetas de gráfico con paréntesis y subíndices que se puedan usar en la función ggarrange, puedes usar la función expression. Sin embargo, al usar el argumento labels en ggarrange, debes usar la función bquote en lugar de expression. La función bquote te permite incluir expresiones dentro de una cadena, que luego se pueden evaluar más tarde. Aquí tienes un ejemplo de cómo puedes modificar tu código para crear las etiquetas correctas:

    p1 <- ggplot(cars, aes(x=speed, y=dist)) + geom_point() + geom_smooth() 
    p2 <- p1
    
    ggarrange(p1, p2, 
              nrow = 2, ncol = 1,  
              common.legend = TRUE,
              legend="bottom",
              labels=list(bquote("a) Mi tasa [%]"),
                         bquote("b) Mi volumen "[m^3/ha])),
              align = c("hv"),
              font.label = list(size = 10, 
                                face = "plain", 
                                color ="black"))
    

    En este código, utilizamos la función bquote para crear las etiquetas, lo que nos permite incluir expresiones dentro de una cadena usando los caracteres [ y ]. La expresión para la segunda etiqueta incluye el subíndice usando el carácter ^. Cuando la función ggarrange evalúa estas etiquetas, reemplazará las expresiones por los valores reales.

    Con estas modificaciones, las etiquetas del gráfico deberían mostrarse correctamente sin comillas adicionales.

Comments are closed.