2012-07-05 72 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)))) 

我明白爲什麼這不,因爲它的工作結合了這兩種模式的頻率,但我仍不很不知道如何解決它。我一直在嘗試reorder()沒有任何運氣。有任何想法嗎?

這裏是我使用的情節代碼:

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

我想你可能要總結你的數據的手能夠使用重新排序() – 2012-07-05 18:00:07

回答

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 2012-07-06 08:33:58

+0

添加位置=「閃避」。雖然,你的數據「看起來」不太清楚。也許像head(THAT_EXT_COMBINED)這樣的東西會有幫助。 – 2012-07-06 18:28:36

+0

我已編輯帖子以包含有關數據結構的信息。正如我所看到的那樣,這是一個如何在PATTERN中先排序因子,然後再按兩個PATTERN中的NODE頻率排序的問題。 – user1504579 2012-07-08 09:39:39