मैं निम्नलिखित साजिश में लेबल की भीड़ से अधिक से बचने पर काम कर रहा हूँ:परहेज ओवर-द भीड़ आर रेखांकन में लेबल की
set.seed(123)
position <- c(rep (0,5), rnorm (5,1,0.1), rnorm (10, 3,0.1), rnorm (3, 4, 0.2), 5, rep(7,5), rnorm (3, 8,2), rnorm (10,9,0.5),
rep (0,5), rnorm (5,1,0.1), rnorm (10, 3,0.1), rnorm (3, 4, 0.2), 5, rep(7,5), rnorm (3, 8,2), rnorm (10,9,0.5))
group <- c(rep (1, length (position)/2),rep (2, length (position)/2) )
mylab <- paste ("MR", 1:length (group), sep = "")
barheight <- 0.5
y.start <- c(group-barheight/2)
y.end <- c(group+barheight/2)
mydf <- data.frame (position, group, barheight, y.start, y.end, mylab)
plot(0,type="n",ylim=c(0,3),xlim=c(0,10),axes=F,ylab="",xlab="")
#Create two horizontal lines
require(fields)
yline(1,lwd=4)
yline(2,lwd=4)
#Create text for the lines
text(10,1.1,"Group 1",cex=0.7)
text(10,2.1,"Group 2",cex=0.7)
#Draw vertical bars
lng = length(position)/2
lg1 = lng+1
lg2 = lng*2
segments(mydf$position[1:lng],mydf$y.start[1:lng],y1=mydf$y.end[1:lng])
segments(mydf$position[lg1:lg2],mydf$y.start[lg1:lg2],y1=mydf$y.end[lg1:lg2])
text(mydf$position[1:lng],mydf$y.start[1:lng]+0.65, mydf$mylab[1:lng], srt = 90)
text(mydf$position[lg1:lg2],mydf$y.start[lg1:lg2]+0.65, mydf$mylab[lg1:lg2], srt = 90)
आप देख सकते हैं कुछ क्षेत्रों लेबल के साथ स्पष्ट रूप से मामला कर रहे हैं - जब एक्स मूल्य एक ही है या इसी के समान। मैं केवल एक लेबल प्रदर्शित करना चाहता हूं (जब एक ही बिंदु पर एकाधिक लेबल होता है)। उदाहरण के लिए,
mydf $ स्थिति [1: 5] सभी 0,
लेकिन इसी लेबल mydf mylab डॉलर कर रहे हैं [1: 5] -
MR1 MR2 MR3 MR4 MR5
मैं सिर्फ पहले एक प्रदर्शित करना चाहते हैं "MR1"।
इसी प्रकार निम्नलिखित बिंदु बहुत करीब हैं (0.35 का अंतर कहें), उन्हें एक क्लस्टर माना जाना चाहिए और पहला लेबल प्रदर्शित किया जाना चाहिए। इस तरह से मैं लेबल की अतिसंवेदनशीलता से छुटकारा पाने में सक्षम हो जाऊंगा। मैं इसे कैसे प्राप्त कर सकता हूं?
इस तरह की समस्याओं का कोई स्वचालित समाधान नहीं है।एक तरफ या दूसरा आपको इसे "हाथ से" ठीक करना होगा: या तो करीबी रेखाओं के समूहों के लिए हार्ड कोडिंग लेबल, या सभी लेबलों को छोड़कर और उन्हें एक छवि संपादक के साथ जोड़कर। – joran
आप i-1 स्थिति डेटा से i postion को घटा सकते हैं, फिर क्लस्टर बनाने के लिए एक थ्रेसहोल्ड बना सकते हैं। फिर शायद प्रति क्लस्टर – jon