1) Gibt es eine R-Bibliothek / Funktion, die die Platzierung von INTELLIGENT-Labels im R-Plot implementieren würde? Ich habe einige ausprobiert, aber sie sind alle problematisch - viele Beschriftungen überlappen sich entweder oder andere Punkte (oder andere Objekte in der Handlung, aber ich sehe, dass dies viel schwieriger zu handhaben ist).
2) Wenn nicht, gibt es eine Möglichkeit, den Algorithmus bei der Platzierung des Etiketts für bestimmte problematische Punkte KOMFORTABL zu unterstützen? Die bequemste und effizienteste Lösung gesucht.
Sie können mit meinem reproduzierbaren Beispiel andere Möglichkeiten spielen und testen und sehen, ob Sie bessere Ergebnisse erzielen können als ich:
# data
x = c(0.8846, 1.1554, 0.9317, 0.9703, 0.9053, 0.9454, 1.0146, 0.9012,
0.9055, 1.3307)
y = c(0.9828, 1.0329, 0.931, 1.3794, 0.9273, 0.9605, 1.0259, 0.9542,
0.9717, 0.9357)
ShortSci = c("MotAlb", "PruMod", "EriRub", "LusMeg", "PhoOch", "PhoPho",
"SaxRub", "TurMer", "TurPil", "TurPhi")
# basic plot
plot(x, y, asp=1)
abline(h = 1, col = "green")
abline(v = 1, col = "green")
Zum Etikettieren habe ich dann diese Möglichkeiten ausprobiert, niemand ist wirklich gut:
1) dieser ist schrecklich:
text(x, y, labels = ShortSci, cex= 0.7, offset = 10)
2) Diese ist gut, wenn Sie nicht alle Punkte beschriften möchten, sondern nur die Ausreißer. Trotzdem werden die Beschriftungen häufig falsch platziert:
identify(x, y, labels = ShortSci, cex = 0.7)
3) dieser sah vielversprechend aus, aber es gibt das Problem, dass Etiketten zu nahe an den Punkten sind; Ich musste sie mit Leerzeichen auffüllen, aber das hilft nicht viel:
require(maptools)
pointLabel(x, y, labels = paste(" ", ShortSci, " ", sep=""), cex=0.7)
4)
require(plotrix)
thigmophobe.labels(x, y, labels = ShortSci, cex=0.7, offset=0.5)
5)
require(calibrate)
textxy(x, y, labs=ShortSci, cx=0.7)
Vielen Dank im Voraus!
EDIT: todo: versuche labcurve {Hmisc} .
install.packages("FField")
library(FField)
FFieldPtRepDemo()