2014-09-24 34 views
0

我对R非常陌生,并试图搜索周围的问题的答案,但无法找到我正在寻找的东西(或者我无法找到包括正确的关键字!)。我认为这在R中是一个相当普遍的任务,但我很新。基于富集的着色散点图R

我有一个x vs y散点图,我想给那些至少有2倍浓缩点的点着色,即x/y> = 2。由于我的值表示为log2值,因此转换后的值需要为x/y> = 4。

我目前拥有的散点图绘制与

plot(log2(counts[,40], log2(counts[,41)) 

其中计数是一个.csv导入的文件和40 & 41是我的兴趣列。

我也创建了一列使用

counts$fold<-counts[,41]/counts[,40] 

我不知道如何将这些两条信息倍数变化......最后,我想,看起来像这里的示例图:http://s17.postimg.org/s3k1w8r7j/error_messsage_1.png 其中至少两倍富集的点将以蓝色着色。

任何帮助将不胜感激。谢谢!

+1

对于未来的参考,你就更有可能得到帮助多数民众赞成直接针对您的问题,如果你提供一个[重复的例子(http://stackoverflow.com/问题/ 5963269/how-to-make-a-great-r-reproducible-example),特别是你的数据样本,你迄今试过的代码以及你试图实现的结果。 – eipi10 2014-09-24 21:51:49

回答

2

这是你在找什么:

# Fake data 
dat = data.frame(x=runif(100,0,50), y = rnorm(100, 10, 2)) 

plot(dat$x, dat$y, col=ifelse(dat$x/dat$y > 4, "blue", "red"), pch=16) 

ifelse语句创建的载体“蓝色”和“红色”(或任何颜色你想要的)基础上的dat$x/dat$yplot用途值为点着色。

This might be helpful如果您从未使用R中的颜色。

enter image description here

另一种选择是使用ggplot2代替基地图形。这里有一个例子:

library(ggplot2) 
ggplot(dat, aes(x,y, colour=cut(x/y, breaks=c(-1000,4,1000), 
           labels=c("<=4",">4")))) + 
    geom_point(size=5) + 
    labs(colour="x/y") 

enter image description here