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 que me guíe cómo obtener el texto anotado en una sola faceta.
r
ggplot2
facet
facet-wrap
facet-grid
MYaseen208
fuente
fuente

Respuestas:
Por lo general, harías algo como esto:
Debería funcionar sin especificar completamente la variable del factor, pero probablemente arrojará algunas advertencias:
fuente
geom_textcon solo una fila.annotate()...?Aquí está la trama sin anotaciones de texto:
Creemos un marco de datos adicional para contener las anotaciones de texto:
Alternativamente, podemos especificar manualmente la posición de cada etiqueta:
También podemos etiquetar parcelas en dos facetas:
Notas:
-InfyInfpara colocar texto en los bordes de un panel.hjustyvjustpara ajustar la justificación del texto.dat_textdebe tener una columna que funcione con sufacet_grid()ofacet_wrap().fuente
colnames()textodata.framecoincida con los datos que está a punto de trazar.Si alguien está buscando una manera fácil de etiquetar facetas para informes o publicaciones, el paquete
egg( CRAN ) tiene funcionestag_facet()ytag_facet_outside()funciones bastante ingeniosas .Etiqueta dentro
Defecto
Nota: si desea conservar el texto y el fondo de la tira, intente agregar
strip.textystrip.backgroundvolver athemeingresar o eliminartheme(strip.text = element_blank(), strip.background = element_blank())de latag_facet()función original .Alinear arriba a la derecha y usar números romanos
Alinee la esquina inferior izquierda y use letras mayúsculas
Define tus propias etiquetas
Etiqueta afuera
Editar : agregar otra alternativa usando el paquete stickylabeller
Creado por el paquete reprex (v0.2.1)
fuente
tag_facetpor nixingstrip.text = element_blank()Warning: Ignoring unknown parameters: strip.textCreo que la respuesta anterior lab = "Text" es inútil, el siguiente código también está bien.
Sin embargo, si desea etiquetar de manera diferente en diferentes sub-gráficos, estará bien de esta manera:
fuente
Ampliando ligeramente la excelente respuesta de joran, para aclarar cómo funciona el marco de datos de la etiqueta.
Puede pensar en "mpg" y "wt" como las coordenadas x e y, respectivamente (me resulta más fácil hacer un seguimiento de los nombres de variables originales que renombrarlos, como en la excelente respuesta de Kamil). Necesita una fila por etiqueta y la columna "cyl" muestra con qué faceta está asociada cada fila.
fuente
No sabía sobre el
eggpaquete, así que aquí hay unaggplot2solución de paquete simplefuente