如何为ggplot指定两个阈值?

时间:2014-06-19 18:54:28

标签: r colors ggplot2

我有一个名为volcano的数据集,如下所示:

    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<如果DiffMean> 0.05,则为蓝色或蓝色。 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))

但我不知道如何使用这两个阈值。

1 个答案:

答案 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