J'essaie d'étiqueter un diagramme de dispersion assez simple en R. C'est ce que j'utilise:
plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)
Le résultat est médiocre, comme vous pouvez le constater (cliquez pour agrandir):
J'ai essayé de compenser cela en utilisant la textxy
fonction, mais ce n'est pas mieux . Rendre l'image plus grande en soi ne fonctionne pas pour les groupes denses.
Existe-t-il une fonction ou un moyen simple de compenser cela et de laisser R des étiquettes de tracé qui ne se chevauchent pas ?
Voici un petit sous-ensemble des données que j'ai:
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
identify()
permet de décider manuellement où placer l'étiquette! Ce n'est pas idéal, mais d'après les solutions proposées, cela fonctionne mieux pour moi.Réponses:
Découvrez le nouveau paquet ggrepel . ggrepel fournit des zones géographiques pour que ggplot2 repousse les étiquettes de texte qui se chevauchent. Cela fonctionne aussi bien pour geom_text que pour geom_label.
La figure est tirée de cet article de blog .
la source
Le
directlabels
paquet fait ça. De sa page Web :Cela n’est peut-être pas toujours possible pour les parcelles denses.
Voici un court exemple:
J'ai réussi à me débarrasser de la coloration ponctuelle
col="black"
, mais pas des étiquettes.la source
direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))
devrait obtenir un résultat similaire.library(lattice)
pour me rendrexyplot
au travail.Je vous suggère de regarder le
wordcloud
paquet. Je sais que ce paquet ne se concentre pas exactement sur les points mais sur les étiquettes elles-mêmes, et le style semble être plutôt figé. Mais malgré tout, les résultats obtenus en l’utilisant étaient assez étonnants. Notez également que la version du paquet en question a été publiée au moment où vous avez posé la question. Elle est donc très récente.http://blog.fellstat.com/?cat=11
la source
J'ai rencontré un problème similaire avec plusieurs des parcelles avec lesquelles j'ai travaillé et j'ai écrit un package de base qui utilise la simulation de champ de force pour ajuster les emplacements des objets. L'avantage par rapport à certaines des solutions citées ci-dessus est le réglage dynamique de la proximité relative d'objet en 2D. Bien que beaucoup d'améliorations soient possibles, notamment l'heuristique et l'intégration avec ggplot, etc., il semble que la tâche soit accomplie. Ce qui suit illustre la fonctionnalité:
Pour le moment, il n'y a pas d'heuristique pour une variété de domaines et de distributions de points, car la solution répondait à mes besoins et je souhaitais proposer rapidement quelque chose d'utile aux gens, mais je les ajouterai à moyen terme. Pour le moment, je recommande de mettre les graphiques à l'échelle 100x100 et inversement et de modifier légèrement les paramètres d'attraction et de répulsion par défaut, comme il est garanti.
la source
Si vous ne pouvez tout simplement pas faire fonctionner correctement les étiquettes telles qu'elles sont produites par R, gardez à l'esprit que vous pouvez toujours enregistrer les graphiques au format vectoriel (comme .pdf) et les insérer dans un programme d'édition comme InkScape ou Adobe Illustrator.
la source
Quelques outils supplémentaires à regarder dans R:
spread.labels
fonction dans leplotrix
packagethigmophobe.labels
dans leplotrix
paquetspread.labs
fonction dans leTeachingDemos
packageTkIdentify
fonction dans leTeachingDemos
packageCeux-ci ne feront pas tout pour vous, mais l'un d'entre eux pourrait faire partie d'une solution.
la source