我对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 那些至少两倍浓缩的点将用蓝色着色。
非常感谢任何帮助。谢谢!
答案 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$y
和plot
的值使用它来为点着色。
This might be helpful如果您从未使用R
中的颜色。
另一种选择是使用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")