2012-02-28 9 views
5

में तीन और स्थितियों के लिए आकर्षित न करें यह प्रश्न Draw vertical ending of error bar line in dotplot से एक अप्रत्याशित अनुवर्ती है। जबकि उद्धृत प्रश्न सफलतापूर्वक हल किया गया था - एक चेतावनी है। जब मैं अधिक परिचय देता हूं तो डॉटप्लॉट के लिए तीन स्थितियां लंबवत टिकों को आकर्षित नहीं करना चाहती हैं। --o-- | त्रुटि सलाखों के अंत में।त्रुटि बार ticks | --o-- | डॉटप्लॉट

जैसा कि @ जॉश ने टिप्पणियों में सुझाव दिया था, मैंने browser() को उस कार्य की पहली पंक्ति में इंजेक्शन दिया जो panel.Dotplot को अद्यतन करने के लिए अद्यतन करता है, लेकिन यह कुछ भी नहीं हुआ जो मुझे हल करने में मदद करता है। यहां फ़ंक्शन के साथ चार-स्थितियों Dotplot() के लिए एक उदाहरण कोड है जो काम नहीं करता है। यह काम करेंगे, अगर आप (प्रश्न ऊपर उद्धृत के लिए चेक जवाब) की स्थिति की संख्या में कमी:

require(Hmisc) 
#Fake conditions 
mean = c(1:18) 
lo = mean-0.2 
up = mean+0.2 
name = c("a","b","c") 
cond1 = c("A","B","C") 
cond2 = c(rep("E1",9),rep("E2",9)) 
d = data.frame (name = rep(name,6), mean, lo, up, 
       cond1=rep(cond1,each=3,times=2), cond2) 
# Create the customized panel function 
mypanel.Dotplot <- function(x, y, ...) { 
     panel.Dotplot(x,y,...) 
     tips <- attr(x, "other") 
     panel.arrows(x0 = tips[,1], y0 = y,x1 = tips[,2], 
       y1 = y,length = 0.1, unit = "native", 
       angle = 90, code = 3) 
} 
#Draw Dotplot - `panel.Dotplot` doesn't change anything 
setTrellis() 
Dotplot(name ~ Cbind(mean,lo,up) | cond1 * cond2, data=d, ylab="", xlab="",col=1, 
     panel = mypanel.Dotplot) 

enter image description here

उत्तर

5

त्रुटि सलाखों वास्तव में कर रहे हैं प्रदान की जा रही है, लेकिन उनके बहुत ही कम की वजह से दिखाई नहीं देते हैं लंबाई (± 0.2 इकाइयां)। निम्नलिखित में ± करने के लिए त्रुटि बढ़ाने से 1 परिणाम (मैं भी बढ़ा दिया है lengthpanel.arrows में निर्दिष्ट - यानी त्रुटि बार टोपी लंबाई - 0.5 के लिए):

lattice error bars

तो अपने सच्चे डेटा इतना सटीक रिश्तेदार है एक्स-वैल्यू की सीमा तक तो आप छोटे बिंदुओं पर विचार करना चाहेंगे (इसलिए वे त्रुटि बार को अस्पष्ट करने के लिए प्रवण नहीं हैं) या एक्स अक्ष को अतिरंजित करने वाला एक लेआउट। उदाहरण के लिए, निम्नलिखित ± 0.2 इकाइयों के अपने मूल त्रुटि का उपयोग करता है, और अपने मूल तीर टोपी 0.1 की length:

Dotplot(name ~ Cbind(mean,lo,up) | cond1 * cond2, data=d, ylab="", xlab="", 
    col=1, panel = mypanel.Dotplot, pch=20, cex=0.4, layout=c(1, 6), strip=FALSE, 
    strip.left=strip.custom(par.strip.text=list(cex=0.75), bg=0, fg=0)) 

lattice precise error bars

+0

अब मैं पूरी कहानी, चियर्स @jbaums मिल गया है! क्लीवलैंड पर गर्व होगा ;-) –

संबंधित मुद्दे