49 votos

¿Cómo puedo evitar la superposición de etiquetas en un gráfico de R?

Estoy tratando de etiquetar un gráfico de dispersión bastante simple en R. Esto es lo que uso:

plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)

El resultado es mediocre, como puedes ver (haz clic para ampliar):

enter image description here

Intenté compensar esto usando el textxy función, pero no es mejor . Hacer la imagen más grande no funciona para los grupos densos.

¿Hay alguna función o forma fácil de compensar esto y dejar que R trace etiquetas que no se superponen ?


Aquí está un pequeño subconjunto de los datos que tengo:

Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205

31voto

user38675 Puntos 90

Vea el nuevo paquete ggrepel . ggrepel proporciona geom para que ggplot2 repela las etiquetas de texto superpuestas. Funciona tanto para geom_text como para geom_label.

enter image description here

La cifra está tomada de esta entrada del blog .

19voto

Alexander Gladysh Puntos 682

El directlabels paquete lo hace. Desde su página web :

Este paquete es un intento de hacer realidad el etiquetado directo en en la práctica estadística diaria, poniendo a disposición un conjunto de funciones que hacen que el etiquetado directo de gráficos comunes sea fácil de hacer con sistemas de trazado de alto nivel como lattice y ggplot2.

Sin embargo, no siempre es posible para las parcelas densas.

He aquí un breve ejemplo:

set.seed(123)
a <- c(rnorm(10,-3,2),rnorm(10,3,2))
b <- c(rnorm(10,-3,2),rnorm(10,3,2))
dfr <- data.frame(a,b)
dfr$t <- c(paste("A",1:10,sep=""),paste("B",1:10,sep=""))
direct.label(xyplot(b~a,dfr,groups=t, col="black"))

Conseguí deshacerme de la coloración del punto con col="black" pero no las etiquetas.

16voto

Te sugiero que eches un vistazo a la wordcloud paquete. Sé que este paquete no se centra exactamente en los puntos, sino en las propias etiquetas, y también el estilo parece ser bastante fijo. Pero aun así, los resultados que obtuve al usarlo fueron bastante impresionantes. También hay que tener en cuenta que la versión del paquete en cuestión fue lanzada más o menos cuando hiciste la pregunta, así que todavía es muy nueva.

http://blog.fellstat.com/?cat=11

textplot() output

10voto

Eero Puntos 1612

Un par de herramientas adicionales para ver en R:

Estos no lo harán todo por ti, pero uno de ellos puede ser parte de la solución.

10voto

Brettski Puntos 5485

En el caso de que simplemente no puede Para conseguir que las etiquetas funcionen correctamente tal y como las produce R, tenga en cuenta que siempre puede guardar los gráficos en un formato vectorial (como .pdf) y llevarlos a un programa de edición como InkScape o Adobe Illustrator.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X