varias superponer los leyenda graficas ggplot geom_text etiquetas escala ejes como cambiar r ggplot2

superponer - Anotación de texto en faceta individual en ggplot2



superponer graficas en r ggplot (3)

Aquí está la trama sin anotaciones de texto:

library(ggplot2) p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() + facet_grid(. ~ cyl) + theme(panel.spacing = unit(1, "lines")) p

Vamos a crear un marco de datos adicional para contener las anotaciones de texto:

dat_text <- data.frame( label = c("4 cylinders", "6 cylinders", "8 cylinders"), cyl = c(4, 6, 8) ) p + geom_text( data = dat_text, mapping = aes(x = -Inf, y = -Inf, label = label), hjust = -0.1, vjust = -1 )

Alternativamente, podemos especificar manualmente la posición de cada etiqueta:

dat_text <- data.frame( label = c("4 cylinders", "6 cylinders", "8 cylinders"), cyl = c(4, 6, 8), x = c(20, 27.5, 25), y = c(4, 4, 4.5) ) p + geom_text(data = ann_text,label = "Text") p + geom_text( data = dat_text, mapping = aes(x = x, y = y, label = label) )

Notas:

  • Puede usar -Inf e Inf para colocar texto en los bordes de un panel.
  • Puede usar hjust y vjust para ajustar la justificación del texto.
  • El marco de datos de etiqueta de texto dat_text debe tener una columna que funcione con facet_grid() o facet_wrap() .

Quiero anotar algún texto en la última faceta de la trama con el siguiente código:

library(ggplot2) p <- ggplot(mtcars, aes(mpg, wt)) + geom_point() p <- p + facet_grid(. ~ cyl) p <- p + annotate("text", label = "Test", size = 4, x = 15, y = 5) print(p)

Pero este código anota el texto en cada faceta. Le agradecería mucho si me guía cómo obtener el texto anotado en una sola faceta. Gracias por adelantado.


Creo que para la respuesta anterior lab = "Texto" es inútil, el siguiente código también está bien.

ann_text <- data.frame(mpg = 15,wt = 5, cyl = factor(8,levels = c("4","6","8"))) p + geom_text(data = ann_text,label = "Text" )

Sin embargo, si desea etiquetar de manera diferente en diferentes sub-gráficos, estará bien de esta manera:

ann_text <- data.frame(mpg = c(14,15),wt = c(4,5),lab=c("text1","text2"), cyl = factor(c(6,8),levels = c("4","6","8"))) p + geom_text(data = ann_text,aes(label =lab) )


Por lo general, harías algo como esto:

ann_text <- data.frame(mpg = 15,wt = 5,lab = "Text", cyl = factor(8,levels = c("4","6","8"))) p + geom_text(data = ann_text,label = "Text")

Debería funcionar sin especificar completamente la variable de factor, pero probablemente lanzará algunas advertencias: