我非常新的与R所以请原谅,如果事情是不是清楚我的问题。
我有一个data.frame
“蛋白质”与5列,分别是;
1.protein_name,2.protein_FC,3.protein_pval,4.mRNA_FC,5.mRNA_pval和6.freq。
我试图绘制以x = LOG 2(protein_FC)火山的情节,Y = -log10(protein_pval)。 然后映射点的大小,频率和颜色mRNA_FC。 这一切工作正常,在这里是我使用的代码:
ggplot( protein [ which ( protein$freq <= 0.05 ),] , aes( x = log2( protein_FC ) ,
y = -log10 ( protein_pval ) , size = freq , colour = mRNA_FC ,
label = paste(protein_name,",",mRNA_pval), alpha=1/1000)) +
geom_point() + geom_text( hjust = 0 , vjust = 0 , colour = "black" , size = 2.5 ) +
geom_abline( intercept = 1.3 , slope = 0) +
scale_colour_gradient(limits=c(-3,3))
一切都很好,直到在这里。 但由于实验的性质,数据是围绕相当密集mRNA_FC = 0
。 在那里,那ggplot默认的配色方案适用不工作的非常好区分不同点。
我以尝试了各种色标low="colour1"
和high="colour2"
。 不过,我认为这将是最好的了的范围内使用多个色阶mRNA_FC
,即像。 蓝色到白色为-3<mRNA<-0.2
,红色到白色为-0.2<mRNA_FC<0
绿白色为0<mRNA_FC<0.2
和黑到白为0.2<mRNA_FC<3
但是我还没有发现这样做还没有任何办法。
任何帮助,将不胜感激。 干杯!