ggplot

2013-07-05 20 views
9

के साथ stat_summary का उपयोग करते समय बार चौड़ाई बदलना मैं बार चार्ट प्लॉट करने के लिए ggplot में stat_summary का उपयोग कर रहा हूं। मैं सलाखों की चौड़ाई बदलना चाहता हूं। आमतौर पर यह width विकल्प का उपयोग करके किया जाता है। पूर्व संक्षेप डेटा और stat="identity के साथ यह अपेक्षा के अनुरूप काम करता है:ggplot

data <- data.frame(group=rep(c("a","b"), 20), y=rnorm(40,100,50)) 
se <- function(x, na.rm=T) sd(x, na.rm=na.rm)/sqrt(length(x)) 
data2 <- cast(data, group ~ ., value="y", c(mean, se)) 
ggplot(data2, aes(group, mean, ymin=mean-1.96*se, ymax=mean+1.96*se)) + 
geom_bar(stat="identity", width=0.5) + geom_errorbar(width=0, size=2) 

हालांकि, stat_summary का उपयोग कर, सलाखों चौड़ाई में परिवर्तन नहीं करते मूल डेटा पर एक ही साजिश में है, जबकि errorbars कार्य करें:

ggplot(data, aes(group, y)) + stat_summary(fun.y="mean", geom="bar", width=0.5) + 
stat_summary(fun.data="mean_cl_normal", geom="errorbar", width=0, size=2) 

stat_summary का उपयोग करते समय भी बार चौड़ाई बदलने का कोई तरीका है?

पहला उदाहरण काम करता है, इसलिए इस प्रश्न में स्पष्ट रूप से पहले से ही एक काम है, हालांकि, मैं वास्तव में जानना चाहूंगा कि stat_summary के साथ ऐसा करने का कोई तरीका है, क्योंकि मैं इसे बहुत उपयोग करता हूं और अक्सर सुविधाजनक।

धन्यवाद!

+2

में आपका स्वागत है stackoverflow करने के लिए। पुनरुत्पादित उदाहरण के साथ एक अच्छी तरह लिखित पहले प्रश्न पर बधाई !! – mnel

उत्तर

8

यह एक ज्ञात मुद्दों 444 और 235

वर्तमान समाधान widthaes भीतर पारित करने के लिए है का विषय है - यह ggplot (मानचित्रण सेटिंग बनाम) के सिद्धांतों के खिलाफ जाता है, लेकिन कम से कम यह काम करता है .. ..

ध्यान दें कि यदि आप एरो बार के बिना त्रुटि बार चाहते हैं तो आप linerange का उपयोग कर सकते हैं!

ggplot(data, aes(group, y)) + 
stat_summary(fun.y="mean", geom="bar", aes(width=0.5)) + 
    stat_summary(fun.data="mean_cl_normal", geom="linerange", size=2) 

enter image description here

+0

यह काम करता है, धन्यवाद! मैं इस मुद्दे का उपयोग उस समय के लिए करूँगा जब समस्या हल हो रही है। – M4RT1NK4

+0

और लिनेरेंज टिप के लिए भी धन्यवाद! – M4RT1NK4

+0

मैं इसे लंबे समय से ढूंढ रहा हूं और अब मुझे यह मिला है। बहुत उपयोगी टिप के लिए धन्यवाद। – upendra