2012-03-08 11 views
6

तो मैं इतनी दूर पाने में कामयाब रहे ...प्राप्त प्रतिशत ggplot2 के साथ अलग-अलग पहलुओं की चिंतनशील Scales

ggplot(init, aes(x=factor(ANGLE), fill=NETWORK)) + 
geom_bar(aes(y = (..count..)/sum(..count..))) + 
facet_wrap(~SHOW) + opts(legend.position = "top") + 
scale_y_continuous(labels = percent_format()) 

मेरे समस्या यह है कि रंग सलाखों से नीचे के सभी टीवी के लिए सभी कैमरा कोण माप के प्रतिशत का प्रतिनिधित्व करते है मेरे अध्ययन में कार्यक्रम। उदाहरण के लिए, ओरेली ग्राफ में एक बार है जो एंगल 2 के लिए 15% तक पहुंचता है, जो चार्ट में सभी एंगल मापों के लिए% 15 है, न केवल ओरेली पहलू में। मैं प्रत्येक ग्राफ को दिखाने के लिए चाहता हूं कि उन सभी के बजाए केवल एक टेलीविजन शो (केवल एक पहलू) के सापेक्ष मायने रखता है।

विचार अलग-अलग शो के बीच कैमरा कोणों के आनुपातिक उपयोग की तुलना करना है, लेकिन जिस तरह से ग्राफ अब है, यह कैमरे पर अधिक समय बिताते हुए कैमरे के कोण परिवर्तनों के साथ शो बनाने के लिए तैयार है। कोण 2 वास्तव में दूसरों के सापेक्ष करते हैं।

इसका निराशाजनक हिस्सा यह है कि मैंने इसे जिस तरह से देखना चाहते थे, उसे देखने में एक घंटा बिताया, फिर मैंने आर को अद्यतन करने की गलती की। इसके साथ अपडेट किए गए पैकेज, और ऐसा हुआ।

एक कम आकार डेटा तालिका available here है।

EDIT: यह या तो काम नहीं करता है। मैंने एईएस (...,) शब्दों में से किसी भी (और दोनों) में "समूह = नेटवर्क" डालने का प्रयास किया, लेकिन कुछ भी नहीं बदला। मैं भी साथ "समूह = शो" है, जो मैंने सोचा था कि एक मौका के और अधिक हो सकता है के बाद से मैं हर पहलू में (इसलिए एक शो के लिए सिर्फ एक प्रतिशत प्राप्त करना चाहता था एक ही बात करने की कोशिश की, प्रत्येक पहलू के लिए तराजू के बारे में 80 तक जाना चाहिए % के बाद से कई शो मुख्य रूप से कैमरा कोण 2 हैं)। क्या मैं कुछ भूल रहा हूँ? ,

ggplot(dat, aes(x=factor(ANGLE))) + 
geom_bar(aes(y = ..density..,group = SHOW,fill = NETWORK)) + 
facet_wrap(~SHOW) + 
opts(legend.position = "top") + 
scale_y_continuous(labels = percent_format()) 

कम से कम, यह एक अलग परिणाम पैदा करता है मुझे यकीन है कि यह दर्शाता है के लिए नहीं कह सकता:

ggplot(init, aes(x=factor(ANGLE), fill=NETWORK), group=SHOW) 
+ geom_bar(aes(y = (..count..)/sum(..count..), group=NETWORK)) + 
+ facet_wrap(~SHOW) + opts(legend.position = "top") + 
+ scale_y_continuous(labels = percent_format()) 

Problematic Graphic

+0

समूह परिणामों में ggplot को बताने के लिए आपको 'aes (..., group = network)' जोड़ने की आवश्यकता है। – Andrie

+0

यह काम नहीं लग रहा था। :-( – user1017124

उत्तर

4

बल्कि ..count.. से ..density.. स्टेट का उपयोग करना मेरे लिए काम करने लगता है आपको क्या चाहिए। इसके अतिरिक्त, मुझे यकीन नहीं है कि ..count.. स्टेट इस तरह से व्यवहार क्यों कर रहा था।

enter image description here

+0

आप, श्रीमान, एक चमत्कार कार्यकर्ता मैं तुम्हें '' 'geom_bar''' कॉल क्योंकि' '' ..density को '' 'चौड़ाई = 1''' जोड़ने की जरूरत है लगता है कर रहे हैं! धन्यवाद! – user1017124

+1

। .'' बार को खींचता है ताकि उनका क्षेत्र एक के बराबर हो। यह केवल बिन में गिरने वाले प्रतिशत के समान होता है जब डिब्बे चौड़ाई 1 होते हैं और कुछ जांच के बाद मुझे पता चला है कि डिफ़ॉल्ट चौड़ाई 0.9 है जब x अक्ष एक कारक (लाइन 79 स्टेट-bin.r) है। दुर्भाग्य से यह भी सलाखों के स्वरूप को बदल देता है।, समस्या सत्यापित करने के लिए हार्डबॉल पैनल जो सबसे ऊंची बार। 100% से अधिक अनुपात – orizon

+0

को दिखाया जाता रहा है पर विचार करें @ orizon अच्छा पकड़। मैं ggplot के बाहर अपने डेटा का सारांश और प्रयोग 'स्टेट =" पहचान "मेरा उत्तर अद्यतन करने के लिए जा रहा था, लेकिन ओ पी के डेटा के लिए लिंक मृत लगता है। अन्य दो विकल्पों' ..ndensity..' हैं या बस ' – joran

0

अब यह ggplot के नए संस्करण में काम कर रहा है। ऐसा करने का तरीका अब + stat_count(aes(y=..prop..))

+0

क्या आप इस पर विस्तार कर सकते हैं? क्या यह केवल एक अतिरिक्त पंक्ति है जो कोड में प्रदान किया गया है सवाल? – JPD

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