ggplot

2012-07-05 25 views
5

के साथ एक ही साजिश में दो हिस्टोग्राम ऑर्डर करना मुझे एक समस्या है कि मैं समाधान ढूंढने में सक्षम नहीं हूं। मेरे पास अलग-अलग विशेषण और कणों के साथ डेटा फ्रेम है जो दो अलग-अलग पैटर्न में पाए जाते हैं।ggplot

head(THAT_EXT_COMBINED) 
      ID PATTERN   NODE 
1 HRE_721_03 THAT_EXT  accepted 
2 G08_1321_01 THAT_EXT acknowledged 
3 AAW_47_03 THAT_EXT acknowledged 
4 G20_1490_01 THAT_EXT  alarming 
5 FY8_732_02 THAT_EXT  amazing 
6 HEM_128_03 THAT_EXT  amazing 

str(THAT_EXT_COMBINED) 
'data.frame': 1450 obs. of 3 variables: 
$ ID  : Factor w/ 1450 levels "A05_253_01","A05_277_07",..: 1109 827 265 853 812 1046 369 810 214 41 ... 
$ PATTERN: Factor w/ 2 levels "THAT_EXT","THAT_POST": 1 1 1 1 1 1 1 1 1 1 ... 
$ NODE : Factor w/ 201 levels "accepted","acknowledged",..: 1 2 2 6 8 8 8 10 12 15 ... 

मैं एक ही साजिश में दो हिस्टोग्राम का उपयोग कर आवृत्ति को कम करने में इन दोनों के पैटर्न के विशेषण प्लॉट करने के लिए चाहते हैं। समस्या यह है कि दोनों के बीच कुछ ओवरलैप है (यानी कुछ विशेषण दोनों पैटर्न में पाए जाते हैं) लेकिन मैं बस प्रत्येक हिस्टोग्राम को सबसे अधिक विशेषण के साथ शुरू करना चाहता हूं।

THAT_EXT_COMBINED <- within(THAT_EXT_COMBINED, 
          NODE <- factor(NODE, 
              levels=names(sort(table(NODE), 
                  decreasing=TRUE)))) 

मुझे समझ में क्यों इस के बाद से काम नहीं करता है दो पैटर्न की आवृत्ति को जोड़ती है लेकिन मैं अभी भी डॉन ':

यहाँ कोड है कि मैं छंटाई के लिए उपयोग किया गया है जब व्यक्ति हिस्टोग्राम उत्पादन है टी इसे हल करने के बारे में पता नहीं है। मैं बिना किसी किस्मत के पुनरावृत्ति() की कोशिश कर रहा हूं। कोई विचार?

graph<-ggplot(THAT_EXT_COMBINED, aes(x=NODE, fill=PATTERN)) + 
geom_histogram(binwidth=.5, position="dodge") 
graph + opts(axis.text.x = theme_blank()) + #removes text labels on x-axis 
scale_y_continuous("Frequency") + 
scale_x_discrete("Adjectives",breaks=NULL)+ 
opts(title = expression("Distribution of Adjectives")) 

जिसके परिणामस्वरूप साजिश के साथ समस्या यह है कि विशेषण सख्ती से दो पैटर्न में उनके संबंधित आवृत्ति द्वारा आदेश दिया नहीं कर रहे हैं:

यहाँ कोड मैं साजिश के लिए उपयोग कर रहा हूँ है। क्या कोई इसके लिए सहायता कर सकता है?


तो, यह आलेख है जिसे मैंने ऊपर दिए गए कोड के साथ बनाया है। मैं इसके बजाय क्या चाहता हूं कि प्रत्येक पैटर्न के लिए विशेषण घटते क्रम में प्लॉट किए गए हों, यानी कि दोनों हिस्टोग्राम आवृत्ति द्वारा घटते क्रम में प्लॉट किए जाते हैं। मुझे लगता है कि यह एक सॉर्टिंग प्रश्न के लिए उबाल जाता है, और मैंने विभिन्न तरीकों से कारकों को ऑर्डर करने का प्रयास किया है, लेकिन मैं पहले PATTERN द्वारा ऐसा करने में सक्षम नहीं हूं और इसके भीतर NODE की आवृत्ति के द्वारा। enter image description here

+0

मुझे लगता है कि टाइपो को सही करने के बाद भी आप से पहले हाथ पुन: व्यवस्थित करें() –

उत्तर

0
library(reshape) 
df <- cast(THAT_EXT_COMBINED, PATTERN ~.) 
colnames(df)[2] <- "Counts" 

ggplot(df, aes(reorder(PATTERN, Counts), Counts, fill=PATTERN)) 
    + geom_bar(position="dodge") # + ... 
+0

यह उपयोग करने के लिए के रूप में मैं केवल एक पैटर्न (के लिए एक बार मिलता है काम करने के लिए प्रतीत नहीं होता सक्षम होने के लिए अपने डेटा को संक्षेप में प्रस्तुत करना पड़ सकता है रीडर() में और geom_histogram() में बदल रहा है)। मैंने यह दिखाने के लिए पोस्ट संपादित किया है कि मैं किस प्रकार की साजिश बनाना चाहता हूं। – user1504579

+0

जोड़ा गया स्थिति = "चकमा"। हालांकि, यह वास्तव में स्पष्ट नहीं है कि आपका डेटा "जैसा दिखता है"। शायद कुछ 'सिर (THAT_EXT_COMBINED)' जैसी कुछ सहायक होगी। –

+0

मैंने डेटा की संरचना पर जानकारी शामिल करने के लिए पोस्ट संपादित किया है। जैसा कि मैंने इसे देखा है, यह प्रश्न है कि पहले पाटरन द्वारा कारकों को कैसे क्रमबद्ध करें और फिर दो PATTERNs के भीतर NODE की आवृत्ति के द्वारा। – user1504579

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