2014-10-04 65 views
1

我想使facet-grid與boxplots結合在一起。方面應該是變量Experiment boxplot應該顯示每個變量的FC值。變量和實驗有多個層次。 我需要使用gridExtra嗎? 我想這一點,這顯然是錯誤的:結合facet_grid和boxplot

df.m 

    FC   Experiment  variable value 
1 -1.36811678 Ago2 Knockout  Pos1 no 
2 -0.59630399 Ago2 Knockout  Pos1 yes 
3 -0.09747337 Ago2 Knockout  Pos1 no 
4 1.71652821 Ago2 Knockout  Pos1 yes 
5 -1.13473546 Ago2 Knockout  Pos1 no 
6 -0.44012950 Ago2 Knockout  Pos1 yes 


ggplot(df.m,aes(value,FC,fill=as.factor(value))) + 
    geom_boxplot(notch=T) + facet_grid(~Experiment) 

回答

6

可以模擬一些數據,如果有太多的發佈(和,瞭解各種因素的水平也將是有益的),但你是對的追蹤該情節,您只需要爲variablevalue添加交互。我做了facet_wrap以下,但你可以很容易地使用facet_grid

library(ggplot2) 

# create reproducible simulated data 
set.seed(1492) 
dat <- data.frame(FC=runif(100, min=-2, max=2), 
        Experiment=rep(c("Ago1", "Ago2", "Ago3", "Ago4"), 25), 
        variable=rep(c("Pos1", "Pos2", "Pos3", "Pos4", "Pos5"), 20), 
        value=sample(c("yes", "no"), 100, replace=TRUE), 
        stringsAsFactors=FALSE) 

gg <- ggplot(dat, aes(x=interaction(variable, value), y=FC)) 
gg <- gg + geom_boxplot(aes(fill=value)) 
gg <- gg + facet_wrap(~Experiment) 
gg <- gg + labs(x="") 
gg <- gg + theme_bw() 
gg <- gg + theme(strip.background=element_rect(fill="black")) 
gg <- gg + theme(strip.text=element_text(color="white", face="bold")) 
gg 

您可能已經創建與合併variablevalue因素,而不是在ggplot呼叫使用interaction明確另一列,這也將使它更容易改變/更多地控制x軸標籤。

enter image description here