2012-04-02 15 views
8

मैं ggplot2 में एक बहुत ही सरल स्टैक्ड बार चार्ट बनाने की कोशिश कर रहा हूं, लेकिन किसी कारण से यह काम नहीं करता है और मुझे त्रुटि संदेश मिलता है: "पिन में त्रुटि (वाई, 0): ऑब्जेक्ट 'वाई' नहीं मिला "। समस्या कहां है?ggplot2 स्टैक्ड बार चार्ट - ऑब्जेक्ट वाई नहीं मिला

factorvar <- c(1,1,1,2,2,2,3,3,3) 
factorvar <- factor(factorvar, labels=c("Type", "Size", "Outcome")) 
freq <- c(3,1,4,1,2,2,4,1,1) 
fillvar <- c(1,1,1,2,2,2,3,3,3) 
fillvar <- factor(fillvar) 

df.harvest <- data.frame(fillvar,freq,factorvar) 

harvest <- ggplot(df.harvest, aes(x=factorvar, y=freq, fill=fillvar)) + geom_bar() 
harvest 
+2

क्या होता है यदि आप अपनी 'geom_bar' कॉल में' stat = "पहचान" 'जोड़ते हैं तो: geom_bar (stat =" identity ")'? –

उत्तर

1

मुझे यकीन है कि क्या त्रुटि संदेश का अर्थ नहीं कर रहा हूँ, लेकिन अगर आप (अपने fillvar चर के स्थान पर) fillvar = c(1,2,3,1,2,3,1,2,3), का उपयोग आप एक स्टैक्ड बार चार्ट मिल जाएगा।

2

मैं सच में यकीन है कि अगर मैं समझता हूँ कि तुम क्या गणना करना चाहते हैं और क्या आप ढेर चाहते हैं, लेकिन अपने कुछ डेटा का उपयोग नहीं कर रहा हूँ और इस कोड

qplot(factor(freq), data=df.harvest, geom="bar", fill=factorvar) 

मैं इस मिलता है,

qplot(factor(freq), data=df.harvest, geom="bar", fill=factor(factorvar))

क्या आप देख रहे हैं?

3

यह सुंदर पुराना है लेकिन मैं इसके लिए किसी भी अच्छे जवाब नहीं देखा था:

तुम हमेशा यदि आप y अक्ष प्रदान कर रहे हैं geom_bar में तर्क निर्दिष्ट करना चाहिए।

आप पहले से ही y अक्ष के रूप में आवृत्ति प्रदान कर रहे हैं और geom_bar, आप के लिए यह गणना करने के लिए ताकि आप geom_bar(stat = "identity")

भी निर्दिष्ट करना होगा, यहाँ fillvar अनिवार्य रूप से factorvar रूप में ही है नहीं करना चाहती और में कोई मतलब नहीं है धुरी के रूप में एक और एक रंग भरने के रूप में उपयोग कर रहे हैं।

हालांकि यदि वे अलग थे, तो आपको geom_bar(stat = "identity", position="dodge") या (stat = "identity", position="stack") भी निर्दिष्ट करना था।

डिफ़ॉल्ट रूप से, stat आपके मामले में "बिन" पर स्विच कर रहा था और यह त्रुटि दे रहा था। डिफ़ॉल्ट रूप से, स्थिति stack का उपयोग करती है।

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