1) Czy jest jakaś biblioteka / funkcja R, która implementowałaby INTELIGENTNE umieszczanie etykiet na wykresie R? Wypróbowałem kilka, ale wszystkie są problematyczne - wiele etykiet nakłada się albo na siebie, albo na inne punkty (lub inne obiekty na wykresie, ale widzę, że jest to znacznie trudniejsze w obsłudze).
2) Jeśli nie, to czy jest jakikolwiek sposób, jak WYGODNIE pomóc algorytmowi w umieszczeniu etykiety dla poszczególnych problematycznych punktów? Pożądane najbardziej wygodne i wydajne rozwiązanie.
Możesz zagrać i przetestować inne możliwości na moim odtwarzalnym przykładzie i sprawdzić, czy jesteś w stanie osiągnąć lepsze wyniki niż ja:
# 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")
W przypadku etykietowania wypróbowałem następnie te możliwości, nikt nie jest naprawdę dobry:
1) ten jest okropny:
text(x, y, labels = ShortSci, cex= 0.7, offset = 10)
2) ten jest dobry, jeśli nie chcesz umieszczać etykiet dla wszystkich punktów, ale tylko dla wartości odstających, ale nadal etykiety są często umieszczane nieprawidłowo:
identify(x, y, labels = ShortSci, cex = 0.7)
3) ten wyglądał obiecująco, ale jest problem z etykietami, które są zbyt blisko punktów; Musiałem wypełnić je spacjami, ale to niewiele pomaga:
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)
Z góry dziękuję!
EDYCJA: todo: spróbuj labcurve {Hmisc} .