2017-09-13 28 views
2

這是一個簡單的問題,我無法以某種方式獲得理想的結果。我想構建一個火山情節,我能夠做到。下面是代碼:使用R的火山地塊中不同顏色的點數

CSCJFCTable <- read.table("volcano_plot_valuesCSCJ.csv", header = TRUE, sep = ",") 
with(CSCJFCTable, plot(log2.FC., -log10(raw.pval), pch=20, main="")) 
abline(h = 1.0, col = "blue 
", lty = 2, lwd = 1) 
abline(v = c(-1,1), col = "blue 
", lty = 2, lwd = 1) 
with(subset(CSCJFCTable, X.log10.p.<1.0), points(log2.FC., -log10(raw.pval), pch=20, col="gray")) 
with(subset(CSCJFCTable, abs(log2.FC.)>1), points(log2.FC., -log10(raw.pval), pch=20, col="orange")) 

而且,這裏是產生積 enter image description here

我想改變點的顏色在第一框和第三個框,以兩種不同的顏色。所以,基本上,log2.FC. < -1 & -log10(raw.pval) > 1.0應該有一個顏色說紅色和log2.FC. > 1 & -log10(raw.pval) > 1.0應該有一個綠色。並且,所有低於-log10(raw.pval)= 1.0的點都應該是灰色的。我怎樣才能做到這一點?我厭倦了不同的組合,但它沒有奏效。

回答

0

我終於得到了想要的解決方案:

CSCJFCTable <- read.table("volcano_plot_valuesCSCJ.csv", header = TRUE, sep = ",") 
with(CSCJFCTable, plot(log2.FC., -log10(raw.pval), pch=20, main="")) 
abline(h = 1.0, col = "blue 
", lty = 2, lwd = 1) 
abline(v = c(-1,1), col = "blue 
", lty = 2, lwd = 1) 
with(subset(CSCJFCTable, X.log10.p.<1.0), points(log2.FC., -log10(raw.pval), pch=20, col="gray")) 
with(subset(CSCJFCTable, log2.FC.< -1 & X.log10.p.>1.0), points(log2.FC., -log10(raw.pval), pch=20, col="red")) 


with(subset(CSCJFCTable, log2.FC.> 1 & X.log10.p.>1.0), points(log2.FC., -log10(raw.pval), pch=20, col="green")) 

enter image description here