akıllı nokta etiket yerleşimi , burada veya burada . Nihai ve ideal bir çözüm yok, bu yüzden sadece bir tane seçmeniz gerekiyor.
Böylece normal kutu işaretini aşağıdaki gibi etiketlerle üst üste koyarsınız:
set.seed(1501)
y <- c(4, 0, 7, -5, rnorm(16))
x1 <- c("a", "a", "b", "b", sample(letters[1:2], 16, T))
lab_y <- sample(letters, 20)
bx <- boxplot(y~x1)
out_lab <- c()
for (i in seq(bx$out)) {
out_lab[i] <- lab_y[which(y == bx$out[i])[1]]
}
identify(bx$group, bx$out, labels = out_lab, cex = 0.7)
Ardından define()
çalışması sırasında etiketin nerede olmasını istediğiniz yere tıklamanız yeterlidir.
burada açıklandığı gibi. Bittiğinde, sadece "DUR" tuşuna basarsınız.
Her bir aykırı değerin birden fazla etikete sahip olabileceğini unutmayın! Benim çözümümde, sadece ilkini seçtim!
Not: For döngüsünden utanıyorum, ama onu nasıl simüle edeceğini bilemiyorum - iyileştirme yapmaktan çekinmeyin.
EDIT: Federico'nın linki şimdi çok daha kolay yapılabilir görüyorum! Sadece şu 2 komut:
boxplot(y~x1)
identify(as.integer(as.factor(x1)), y, labels = lab_y, cex = 0.7)