2014-06-26 35 views
0

我是R新手,在使用ggplot2時遇到了一些問題。帶有多個x變量的Boxplot

這是我的數據(較大的數據集的子集)的一個例子:

df <- 
structure(list(logpvalue = c(22.36, 6.93, 16.78, 1.78, 17.75, 
20.99, 21.03, 9.19, 15.01, 22.25, 13.4, 6.47, 1.34, 13.4, 3.21, 
0.37, 0.5, 0.12, 1.8, 0.71, 1.15, 6.73, 0.12, 6.97, 0.64, 9.85, 
1.45, 1.67, 2.6, 1.8, 1.35, 4.69, 0.37, 1.91, 0.31, 0, 2.45, 
1.68, 2.31, 1.35, 6.48, 4.68), SNP = structure(c(1L, 7L, 6L, 
5L, 11L, 1L, 9L, 5L, 8L, 11L, 7L, 5L, 8L, 11L, 1L, 7L, 1L, 4L, 
2L, 3L, 10L, 7L, 1L, 4L, 2L, 3L, 10L, 4L, 2L, 3L, 10L, 4L, 2L, 
3L, 10L, 4L, 2L, 3L, 7L, 9L, 5L, 1L), .Label = c("rs10244", "rs10891244", 
"rs10891245", "rs11213821", "rs12296076", "rs138567267", "rs45615536", 
"rs6589218", "rs7103178", "rs7127721", "rs7944895"), class = "factor"), 
X173 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L), .Label = c("het", "hom"), class = "factor")), .Names = c("logpvalue", 
"SNP", "X173"), class = "data.frame", row.names = c(NA, -42L)) 

我想在x軸,但與每個SNP還積的logpvalue的箱線圖在Y軸上,以SNP根據患者是het還是homX173進行分類。所以從這些數據中我可以想象我的箱子上有4個盒子。

如果可能的話,我還想將各個數據點(dotplot-boxplot overlay)與抖動結合起來。

這是通常的代碼我會使用logpavlue的VS SNP的箱線圖:

qplot(logpvalue, SNP, data = mydata, geom="boxplot") 
+ geom_jitter(position=position_jitter(w=0.1, h=0.1)) + theme_bw() 

如何添加額外的變量x這個代碼?使用ggolot2

boxplot(df$logpvalue~paste(df$SNP,df$X173)) 

或者:

+2

請讓你的[數據重複性(http://stackoverflow.com/questions/5963269/how例如),並閱讀[box plot](http://en.wikipedia.org/wiki/Box_plot) – zx8754

+0

感謝您的回覆 - 我試圖讓我的數據再現不過,它是一個大型數據集,我不想在線粘貼所有數據。不知道你對箱型圖的看法是什麼 - 我知道他們是針對多個數據點而不是個人的,因爲我之前的示例數據會給出。我幾乎無法理解任何劇本,所以我對我的無能爲力表示歉意! – user3778714

回答

0

試試這個

library(ggplot2) 

ggplot(data=df,aes(SNP,logpvalue,colour=SNP)) + 
    geom_boxplot() + 
    geom_jitter() + 
    facet_grid(.~X173) 

enter image description here