Estoy tratando de etiquetar un diagrama 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 puede ver (haga clic para ampliar):
Traté de compensar esto usando la textxy
función, pero no es mejor . Hacer que la imagen en sí sea más grande no funciona para los grupos densos.
¿Hay alguna función o forma fácil de compensar esto y dejar que R tracen las etiquetas que no se superponen ?
Aquí hay 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
r
data-visualization
scatterplot
slhck
fuente
fuente
identify()
permite decidir manualmente dónde colocar la etiqueta! No es ideal, pero de las soluciones propuestas esto funciona mejor para mí.Respuestas:
Echa un vistazo al nuevo paquete ggrepel . ggrepel proporciona geoms para que ggplot2 repele las etiquetas de texto superpuestas. Funciona tanto para geom_text como geom_label.
La figura está tomada de esta publicación de blog .
fuente
El
directlabels
paquete hace eso. Desde su página web :Sin embargo, no siempre es posible para parcelas densas.
Aquí hay un breve ejemplo:
Me las arreglé para deshacerme de la coloración de puntos
col="black"
, pero no las etiquetas.fuente
direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))
debería obtener un resultado similar.library(lattice)
para irxyplot
a trabajar.Te sugiero que eches un vistazo al
wordcloud
paquete. Sé que este paquete no se enfoca exactamente en los puntos sino en las etiquetas mismas, y también el estilo parece ser bastante fijo. Pero aún así, los resultados que obtuve al usarlo fueron bastante impresionantes. También tenga en cuenta que la versión del paquete en cuestión se lanzó sobre el momento en que hizo la pregunta, por lo que todavía es muy nueva.http://blog.fellstat.com/?cat=11
fuente
Me encontré con un problema similar con varias de las parcelas con las que he estado trabajando y escribí un paquete básico que usa la simulación de campo de fuerza para ajustar las ubicaciones de los objetos. La ventaja sobre algunas de las soluciones mencionadas anteriormente es el ajuste dinámico para la proximidad relativa del objeto en 2D. Si bien es posible realizar muchas mejoras, incluidas la heurística y la integración con ggplot, etc., parece que se logra la tarea. Lo siguiente ilustra la funcionalidad:
Por ahora no hay heurística para una variedad de áreas y distribuciones de puntos, ya que la solución satisfizo mis necesidades y quería obtener algo útil para la gente rápidamente, pero las agregaré en el mediano plazo. En este momento, recomiendo escalar gráficos a 100x100 y viceversa y ajustar ligeramente los parámetros predeterminados de atracción y repulsión según lo justifique.
fuente
En el caso de que simplemente no pueda hacer que las etiquetas funcionen correctamente como lo produjo R, tenga en cuenta que siempre puede guardar los gráficos en un formato vectorial (como .pdf) y colocarlos en un programa de edición como InkScape o Adobe Illustrator.
fuente
Un par de herramientas adicionales para mirar en R:
spread.labels
función en elplotrix
paquetethigmophobe.labels
en elplotrix
paquetespread.labs
función en elTeachingDemos
paqueteTkIdentify
función en elTeachingDemos
paqueteEstos no harán todo por usted, pero uno de ellos puede ser parte de una solución.
fuente