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 eliminar leyendas específicas en ggplot2?

Tengo tres grupos (Tissue) y dos grupos (Treatment) representados en un boxplot facetado y me gustaría eliminar la leyenda para “treatment”, ya que ya está representada en el gráfico y mantener la leyenda para “Tissue”.

box <- ggboxplot(subclusDF, x = 'Treatment', y = 'ATP4', fill = "Tissue", color = 'Tissue', palette = qualitative<em>hcl(3, palette = 'Dark 3'), add = 'jitter', shape = 'Treatment'  )
box <- box + labs(title= 'GHRL') + xlab(NULL) + ylab("Expression") + facet</em>grid(~Tissue)
box

box + theme()+
theme(
  plot.title = element<em>text(face = "bold", size = 12),
  legend.background = element</em>rect(fill = "white", size = 4, colour = "white"),
  legend.justification = c(0, 1),
  legend.title=element<em>text(NULL),
  legend.key = element</em>blank(),
  legend.position = c(0, 1),
  axis.text = (NULL),
  axis.ticks = element<em>line(colour = "grey70", size = 0.2),
  panel.grid.major = element</em>line(colour = "grey70", size = 0.2),
  panel.grid.minor = element_blank()
)
box
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar la leyenda para “Treatment” y mantener la leyenda para “Tissue” en un gráfico de cajas facetado en ggplot2, puedes modificar la función theme() configurando legend.position como NULL para la leyenda “Treatment”, mientras la mantienes con los valores por defecto para la leyenda “Tissue”. Aquí tienes un fragmento de código actualizado:

    box <- ggboxplot(subclusDF, x = 'Treatment', y = 'ATP4', fill = "Tissue", color = 'Tissue', palette = qualitative_hcl(3, palette = 'Dark 3'), add = 'jitter', shape = 'Treatment'  )
    box <- box + labs(title= 'GHRL') + xlab(NULL) + ylab("Expression") + facet_grid(~Tissue)
    
    box + theme() +
      theme(
        plot.title = element_text(face = "bold", size = 12),
        legend.background = element_rect(fill = "white", size = 0, colour = "white"),
        legend.justification = c(0, 1),
        legend.title=element_text(NULL),
        legend.key = element_blank(),
        legend.position = c(0, 1, NULL), # establece la posición de la leyenda en NULL para la leyenda "Treatment"
        axis.text = element_blank(), # establece el texto del eje como vacío
        axis.ticks = element_line(colour = "grey70", size = 0.2),
        panel.grid.major = element_line(colour = "grey70", size = 0.2),
        panel.grid.minor = element_blank()
      )
    

    En la función theme(), configuramos legend.position con tres valores: los dos primeros valores (c(0, 1)) posicionan la leyenda “Tissue” en la esquina superior izquierda, mientras que el tercer valor (NULL) indica que no queremos posicionar la leyenda “Treatment” en absoluto. También configuramos el tamaño de legend.background como 0, ya que no queremos mostrar el recuadro alrededor de la leyenda “Treatment”. Por último, para eliminar el texto del eje, establecemos axis.text como element_blank().

Comments are closed.