2014-09-24 74 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