Ich versuche, ein ziemlich einfaches Streudiagramm in R zu beschriften. Dies ist, was ich benutze:
plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)
Das Ergebnis ist mittelmäßig, wie Sie sehen können (zum Vergrößern klicken):
Ich habe versucht, dies mit der textxy
Funktion zu kompensieren , aber es ist nicht besser . Das Bild selbst zu vergrößern, funktioniert bei dichten Clustern nicht.
Gibt es eine Funktion oder eine einfache Möglichkeit, dies zu kompensieren und R-Plot-Beschriftungen zuzulassen, die sich nicht überlappen ?
Hier ist eine kleine Teilmenge der Daten, die ich habe:
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
quelle
quelle
identify()
läßt Sie manuell entscheiden , wo das Etikett zu platzieren! Es ist nicht ideal, aber von den vorgeschlagenen Lösungen funktioniert dies am besten für mich.Antworten:
Schauen Sie sich das neue Paket ggrepel an . ggrepel stellt Geoms für ggplot2 bereit, um überlappende Textbeschriftungen abzuwehren. Es funktioniert sowohl für geom_text als auch für geom_label.
Die Abbildung stammt aus diesem Blogbeitrag .
quelle
Das
directlabels
Paket macht das. Von seiner Webseite :Es ist jedoch möglicherweise nicht immer möglich, dichte Parzellen zu erstellen.
Hier ist ein kurzes Beispiel:
Ich habe es geschafft, die Punktfärbung mit
col="black"
, aber die nicht Etiketten loszuwerden .quelle
direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))
ein ähnliches Ergebnis erzielen.library(lattice)
, umxyplot
zur Arbeit zu kommen.Ich schlage vor, Sie werfen einen Blick auf das
wordcloud
Paket. Ich weiß, dass dieses Paket sich nicht genau auf die Punkte konzentriert, sondern auf die Etiketten selbst, und auch der Stil scheint eher festgelegt zu sein. Trotzdem waren die Ergebnisse, die ich damit erzielt habe, erstaunlich. Beachten Sie auch, dass die betreffende Paketversion zu dem Zeitpunkt veröffentlicht wurde, zu dem Sie die Frage gestellt haben. Sie ist also noch sehr neu.http://blog.fellstat.com/?cat=11
quelle
Bei einigen der Diagramme, mit denen ich gearbeitet habe, stieß ich auf ein ähnliches Problem und schrieb ein Basispaket, das die Kraftfeldsimulation zum Anpassen der Objektpositionen verwendet. Der Vorteil gegenüber einigen der oben genannten Lösungen ist die dynamische Anpassung der relativen Objektnähe in 2D. Obwohl viele Verbesserungen möglich sind, einschließlich der Heuristik und der Integration in ggplot usw., scheint es, dass die Aufgabe erfüllt wird. Das Folgende veranschaulicht die Funktionalität:
Im Moment gibt es keine Heuristik für eine Vielzahl von Bereichen und Punkteverteilungen, da die Lösung meinen Anforderungen entsprach und ich wollte, dass die Leute schnell etwas Hilfreiches herausbekommen, aber ich werde diese mittelfristig hinzufügen. Zu diesem Zeitpunkt empfehle ich, die Diagramme auf 100x100 und zurück zu skalieren und die Standardparameter für Anziehung und Abstoßung nach Bedarf leicht anzupassen.
quelle
Für den Fall, dass die von R erstellten Beschriftungen einfach nicht ordnungsgemäß funktionieren, können Sie die Grafiken jederzeit in einem Vektorformat (z. B. PDF) speichern und in ein Bearbeitungsprogramm wie InkScape oder Adobe Illustrator ziehen.
quelle
Ein paar zusätzliche Tools zum Ansehen in R:
spread.labels
Funktion implotrix
Paketthigmophobe.labels
in derplotrix
Packungspread.labs
Funktion imTeachingDemos
PaketTkIdentify
Funktion imTeachingDemos
PaketDies wird nicht alles für Sie tun, aber einer von ihnen kann Teil einer Lösung sein.
quelle