1) มี R ไลบรารี / ฟังก์ชันใดบ้างที่จะใช้การจัดวางป้ายกำกับอัจฉริยะใน R plot ฉันลองใช้บ้าง แต่ก็มีปัญหาทั้งหมด - ป้ายกำกับจำนวนมากซ้อนทับกันหรือจุดอื่น ๆ (หรือวัตถุอื่น ๆ ในพล็อต แต่ฉันเห็นว่ามันยากกว่ามากที่จะจัดการ)
2) หากไม่เป็นเช่นนั้นมีวิธีใดบ้างที่จะช่วยให้อัลกอริทึมสะดวกสบายในการจัดวางฉลากสำหรับจุดที่มีปัญหา ต้องการโซลูชันที่สะดวกสบายและมีประสิทธิภาพที่สุด
คุณสามารถเล่นและทดสอบความเป็นไปได้อื่น ๆ ด้วยตัวอย่างที่ทำซ้ำได้ของฉันและดูว่าคุณสามารถบรรลุผลลัพธ์ที่ดีกว่าที่ฉันมีได้หรือไม่:
# 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")
สำหรับการติดฉลากฉันลองใช้ความเป็นไปได้เหล่านี้แล้วไม่มีใครดีจริงๆ:
1) อันนี้แย่มาก:
text(x, y, labels = ShortSci, cex= 0.7, offset = 10)
2) อันนี้ดีถ้าคุณไม่ต้องการวางป้ายกำกับสำหรับทุกจุด แต่สำหรับค่าผิดปกติ แต่ถึงกระนั้นป้ายกำกับมักจะวางผิด:
identify(x, y, labels = ShortSci, cex = 0.7)
3) อันนี้ดูน่าสนใจ แต่มีปัญหาเรื่องฉลากอยู่ใกล้กับจุดมากเกินไป ฉันต้องเว้นวรรค แต่มันไม่ได้ช่วยอะไรมาก:
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)
ขอบคุณล่วงหน้า!
แก้ไข:สิ่งที่ต้องทำ: ลองlabcurve {}
install.packages("FField")
library(FField)
FFieldPtRepDemo()