2017-09-13 29 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