R:控制在ggplot2中打破间隔

时间:2014-02-06 15:24:52

标签: r ggplot2

我有以下数据框样本:

    A  B         C      pval
1   8  4 0.6714801 0.3138729
2   9  9 0.6373763 0.1402027
3   5  6 0.6695279 0.3426810
4  10  7 0.6338043 0.1722161
5   2  3 0.6692842 0.3301052
6   1  1 0.6728664 0.5777641
7   6  2 0.6608868 0.2637952
8   3 10 0.6721009 0.6584530
9   7  8 0.6338043 0.7839811
10  4  5 0.6728818 0.5045481

但是发生了一些奇怪的事情。

当我对pval列进行剪切时,我得到了很多级别

dataf$pval.d <- cut(dataf$pval, breaks=c(min(dataf$pval),0.02,0.05,Inf), 
                    labels=c("min","0.02","0.05"), right = FALSE)

> paste(levels(dataf$pval.d),table(dataf$pval.d))

    [1] "min 0"     "0.02 36"   "0.05 3342"

但是当我想使用scale_colour_gradient进行绘制时,我在图例中获得的休息次数较少(only one for 0.05)。即使它位于同一数据框的同一列上。

pl <-ggplot(dataf) + 
         geom_tile(aes(fill=C,A,B)) + 
         stat_contour(breaks = c(min(dataf$pval),0.02,0.05),
                      aes(x=A,y=B,z=pval,colour = ..level..)) + 
         scale_colour_gradient2(low="black",mid="black",high="green",
            name="\n P-value \n")

我如何让scale_colour_gradient2以与切割相同的方式进行休息?我想我只需要控制scale_colour_gradient2内的休息间隔,如果可能的话?

0 个答案:

没有答案