2015-03-02 61 views
0

考慮下面的例子創建箱線圖:如何子集R A longtable與ggplot

set.seed(1) 
tmp.data<-data.frame(group=rep(c("x","y","z"),8), 
year=rep(c(2000:2003),6), 
value=runif(24, 1, 100)) 

我可以創建一個簡單的箱線圖與組關係:

boxplot.example<-ggplot(data=tmp.data) 
boxplot.example.simple<-boxplot.example + 
geom_boxplot(aes(x=group,y=value)) 

# plot 
boxplot.example.simple 

不過,我想創建在同一圖形中爲每個組和每個年份單獨繪製盒形圖。

我同組函數試圖從ggplot:

boxplot.example.yearly<-boxplot.example + 
geom_boxplot(aes(x=year,y=value, group=group)) 

# plot 
boxplot.example.yearly # does not work as expected 

然而,由於預期的分組沒有工作。

然後我試圖用splitllply這樣的:

require("plyr") 

boxplot.example.yearly.2<-ggplot() + 
llply(.data=split(tmp.data,tmp.data$year),.fun=geom_boxplot, 
aes(x=year,y=value)) 

# Error: ggplot2 doesn't know how to deal with data of class uneval 

這可能是由於這不是ggplot函數中指定的數據參數的事實。

那麼我怎樣才能將箱形圖繪製到一個圖表中,並按照group和年度觀測值進行分組?

回答

1

當你想爲每個組和同期的圖箱線圖,我想你的數據集是準備好了,你可以做到以下幾點:

p <- ggplot(tmp.data, aes(factor(year), fill=group, value)) 
p + geom_boxplot() 

enter image description here

+0

工作了我!非常感謝你! – joaoal 2015-03-02 14:23:07

+0

這是我的榮幸,很高興它的作品! – 2015-03-02 14:33:09