2014-06-19 38 views
1

我有一個名爲火山集,看起來像這樣:如何爲ggplot指定兩個閾值?

DiffMean  P.value 
-0.0246757556 0.1 
    0.0050993889 0.002 
-0.0169992614 0.008 
    0.0039905857 0.03 
-0.0081568420 0.02 
-0.0279989935 0.03 
    0.0313951281 0.44 
-0.0097932018 0.22 
-0.1033745673 0.003 
    0.1143251388 0.02 
-0.0738617112 0.004 
-0.0011579184 0.1 
-0.0008561962 0.022 
    0.0435398270 0.11 
-0.0380242369 0.05 
    0.1533720177 0.03 

我想繪製此使用ggplot,但我要的顏色是紅色,如果DiffMean < 0和P.value < 0.05或藍色如果DiffMean > 0和P.value < 0.05。

我至今是:

volcano$threshold = as.factor(abs(volcano$DiffMean)>0 & volcano$p.value.adj< 0.05) 
ggplot(data=volcano, aes(x=DiffMean, y=-1*log10(p.value), colour=threshold)) + 
geom_point(aes(alpha=0.4, size=1.75)) + 
xlim(c(-1,1)) + ylim(c(0,25)) 

但我不知道如何使用這兩個閾值。

+0

您的代碼不與樣本數據的工作。 –

回答

1

我會做這樣的事情:

volcano$threshold <- 
    factor(ifelse(volcano$DiffMean>0 & volcano$p.value< 0.05, 
       1, 
       ifelse(volcano$DiffMean<0 & volcano$p.value< 0.05, 
         -1, 
         0) 
       )) 
library(ggplot2) 
ggplot(data=volcano, aes(x=DiffMean, y=-1*log10(p.value), colour=threshold)) + 
    geom_point(alpha=0.4, size=5) + 
    scale_y_log10() 

enter image description here

+0

謝謝!有用 – tss28