Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在一个图中对不同范围的数据使用多个比例\颜色\梯度比例_R_Ggplot2 - Fatal编程技术网

R 在一个图中对不同范围的数据使用多个比例\颜色\梯度比例

R 在一个图中对不同范围的数据使用多个比例\颜色\梯度比例,r,ggplot2,R,Ggplot2,我对R很陌生,所以如果我的问题不清楚,请容忍我 我有一个data.frame“protein”有5列,即: 1.protein_name,2.protein_FC,3.protein_pval,4.mRNA_FC,5.mRNA_pval和6.freq 我试图用x=log2(protein_FC),y=-log10(protein_pval)绘制火山图。然后将点的大小映射到freq,将颜色映射到mRNA_FC。这一切都很好,下面是我使用的代码: ggplot( protein [ which (

我对R很陌生,所以如果我的问题不清楚,请容忍我

我有一个
data.frame
“protein”有5列,即:

1.protein_name,2.protein_FC,3.protein_pval,4.mRNA_FC,5.mRNA_pval和6.freq

我试图用x=log2(protein_FC),y=-log10(protein_pval)绘制火山图。然后将点的大小映射到freq,将颜色映射到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))

ggplot(protein)[protein$freq对于这种类型的东西,您要使用
scale\u gradientn
。例如:

library(ggplot2)

x = seq(-0.1, 0.1, len=100)
y = 0:10
dat = expand.grid(x=x, y=y)

ggplot(data=dat, aes(x=x, y=y, fill=x)) +
  geom_raster() +
  scale_fill_gradientn(colours=c('red', 'yellow', 'cyan', 'blue'),
    values   = c(-0.05,-1e-32,1e-32,0.05),
    breaks   = c(-0.05,-0.005,0.005,0.05),
    rescaler = function(x,...) x,
    oob      = identity)

我不完全理解你的问题。一个示例图形或数据集会更好地理解默认ggplot2颜色刻度的错误。默认颜色刻度围绕mRNA_FC=0旋转数据,但我希望它在0的两侧显示完全不同的颜色。我觉得它的显示点非常接近0,比如-0.1、0和0.1具有相同的颜色。很抱歉,我无法共享数据集,因为数据集即将发布,而且数据所有者还不想公开。那么,使用用户定义的
的离散色标打破
怎么样?谢谢你,John。这正是我想要的。老实说,我花了一段时间才找到最好的使用它的方式,正如我在帖子中所说,我在R的经验是2周前的。