2014-05-05 92 views
0

我創建的並排酒吧圖略有偏移,我希望能夠控制哪些酒吧在前面,哪個在後面。我試圖改變因素的順序,但它總是將相同的因素放在前面。我希望將學校變量放在前面,並將背板數據作爲參考點。當我運行代碼時,R總是將學校數據放在後面。控制ggplot2中的酒吧位置

library (ggplot2 
library(reshape) 

school <- c(92, 90, 88) 
board <- c(87, 88, 88) 
grade <- c("Grade 1", "Grade 2", "Grade 3") 
df <- melt (data.frame (school, board, grade)) 
ggplot (df, aes(x=grade, y=value, fill=variable)) + geom_bar (stat="identity", position =position_dodge(width=.5)) 

我敢肯定這是簡單的東西,但無法弄清楚。任何幫助,將不勝感激。

+0

格雷戈喲,我沒有得到它。但是(醜陋的)解決方法 - 重新定義關卡並訂購數據。即'df $ variable < - factor(df $ variable,levels = c(「board」,「school」)); df < - df [order(df $ variable),]' – user20650

+0

當我扭轉因子水平時,'board'欄是紅色的,並繪製在'school'欄後面,它們是藍色的。 – joran

+0

@joran;我分享OP的問題;逆轉因素水平改變了酒吧的顏色,但「學校」依然落後。因此醜陋的解決方法 – user20650

回答

0

我知道你說你改變了因素的水平,它不起作用。但是,當我改變了它的工作水平。嘗試赤道()

library (ggplot2) 
library(reshape) 

school <- c(92, 90, 88) 
board <- c(87, 88, 88) 
grade <- c("Grade 1", "Grade 2", "Grade 3") 
df <- melt (data.frame (school, board, grade)) 
df 

#releveling factor 
levels(df$variable) 
df$variable <- relevel(df$variable, ref="board") 

ggplot (df, aes(x=grade, y=value, fill=variable)) + 
    geom_bar (stat="identity", position =position_dodge(width=.5)) 
+1

謝謝,但我得到了同樣的結果。 user20650提供的解決方法似乎已經完成了。 – Greg

相關問題