Cómo anotar muy bien un ggplot2 (manual)

Usando ggplot2 normalmente uso geom_text y algo así como position=jitter para anotar mis gráficos.

Sin embargo, para una buena ttwig a menudo me parece que vale la pena anotar manualmente. como abajo:

 data2 <- structure(list(type = structure(c(5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L, 5L, 1L, 2L, 4L, 3L), .Label = c("EDS", "KIU", "LAK", "MVH", "NA*"), class = "factor"), value = c(0.9, 0.01, 0.01, 0.09, 0, 0.8, 0.05, 0, 0.15, 0, 0.41, 0.04, 0.03, 0.52, 0, 0.23, 0.11, 0.02, 0.64, 0.01), time = c(3L, 3L, 3L, 3L, 3L, 6L, 6L, 6L, 6L, 6L, 15L, 15L, 15L, 15L, 15L, 27L, 27L, 27L, 27L, 27L), year = c(2008L, 2008L, 2008L, 2008L, 2008L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2007L, 2006L, 2006L, 2006L, 2006L, 2006L)), .Names = c("type", "value", "time", "year"), row.names = c(1L, 3L, 4L, 5L, 6L, 7L, 9L, 10L, 11L, 12L, 13L, 15L, 16L, 17L, 18L, 19L, 21L, 22L, 23L, 24L), class = "data.frame") ggplot(data2, aes(x=time, y=value, group=type, col=type))+ geom_line()+ geom_point()+ theme_bw()+ annotate("text", x=6, y=0.9, label="this is a wrong color")+ annotate("text", x=15, y=0.6, label="this is a second annotation with a wrong color") 

El problema es que no puedo obtener el color de las anotaciones de texto para que coincida con el color de la línea. Supongo que podría arreglar esto con una escala manual, pero espero que haya una mejor manera.

Si usa geom_text () en lugar de anotar (), puede pasar un color de grupo a su diagtwig:

 ggplot(data2, aes(x=time, y=value, group=type, col=type))+ geom_line()+ geom_point()+ theme_bw() + geom_text(aes(7, .9, label="correct color", color="NA*")) + geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

Entonces, usando anotar () se ve así: texto alt http://sofes.miximages.com/r/before.png

luego, después de usar geom_text () se ve así: alt text http://sofes.miximages.com/r/after.png

Tuve un problema similar y lo resolví con la respuesta larga de JD. Pero como resultado de la actualización de ggplot2 a la versión 0.9.0 noté que todas las llamadas a geom_text() algo borrosas en las ttwigs.

Gracias a kohske descubrí que este código

 ggplot(data2, aes(x=time, y=value, group=type, col=type))+ geom_line()+ geom_point()+ theme_bw() + geom_text(aes(7, .9, label="correct color", color="NA*")) + geom_text(aes(15, .6, label="another correct color!", color="MVH")) 

traza el geom_text nrow(data2) veces!

La forma correcta de suministrar datos a geom_text es crear un data.frame diferente que contenga coordenadas, tags y colores para las cadenas que desea trazar:

 data2.labels <- data.frame( time = c(7, 15), value = c(.9, .6), label = c("correct color", "another correct color!"), type = c("NA*", "MVH") ) ggplot(data2, aes(x=time, y=value, group=type, col=type))+ geom_line()+ geom_point()+ theme_bw() + geom_text(data = data2.labels, aes(x = time, y = value, label = label))