基于倍数富集的R中的着色散点图

时间:2014-09-24 21:27:04

标签: r

我对R很新,并试图寻找我的问题的答案,但找不到我想要的东西(或者我无法找出合适的关键词来包括!) 。我认为这在R中是一个相当普遍的任务,我只是很新。

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

我目前用

绘制散点图
plot(log2(counts[,40], log2(counts[,41))

其中count是.csv导入的文件和40& 41是我感兴趣的专栏。

我还使用

创建了一个折叠更改列
counts$fold<-counts[,41]/counts[,40]

我不知道如何合并这两条信息......最终我想要一个类似于此处示例的图表:http://s17.postimg.org/s3k1w8r7j/error_messsage_1.png  那些至少两倍浓缩的点将用蓝色着色。

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

这是你正在寻找的东西:

# 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语句创建了一个&#34; blue&#34;的向量和&#34;红色&#34; (或者你想要的任何颜色)根据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