Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.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 ggplot2:scale_alpha()的阈值_R_Colors_Ggplot2_Alpha - Fatal编程技术网

R ggplot2:scale_alpha()的阈值

R ggplot2:scale_alpha()的阈值,r,colors,ggplot2,alpha,R,Colors,Ggplot2,Alpha,是否可以为色阶指定阈值 看看这个例子: xy <- expand.grid(x=1:20,y=1:20) xyd <- data.frame(xy,z=runif(400),a=rowSums(xy)/40) g <- ggplot(xyd, aes(x=x, y=y, fill=z, alpha=a)) + geom_tile() + scale_alpha(range=c(0,1), limits=c(0.5,1)) g xy我尝试使用量表

是否可以为色阶指定阈值

看看这个例子:

xy <- expand.grid(x=1:20,y=1:20)
xyd <- data.frame(xy,z=runif(400),a=rowSums(xy)/40)
g <- ggplot(xyd, aes(x=x, y=y, fill=z, alpha=a)) + 
       geom_tile() + 
       scale_alpha(range=c(0,1), limits=c(0.5,1))
g

xy我尝试使用量表控制阿尔法的尝试都没有完全成功。我的最佳尝试是使用
ifelse
控制a的值:

ggplot(xyd, aes(x=x, y=y, fill=z)) + 
  geom_tile(aes(alpha=ifelse(a<=0.5, 0, a))) +
  scale_alpha(range=c(0,1))
ggplot(xyd,aes(x=x,y=y,fill=z))+

geom_tile(aes)(alpha=ifelse)(a阈值正在工作,阈值之外的值被设置为
NA
;问题是
NA
alpha
被渲染为完全不透明度。将标尺上的
NA.value
设置为
0
可以得到您想要的结果

ggplot(xyd, aes(x=x, y=y, fill=z, alpha=a)) + 
       geom_tile() + 
       scale_alpha(range=c(0,1), limits=c(0.5,1), na.value = 0)

但是看,对角线像素的alpha值比我的示例中的透明度要低得多。有效的方法是:
ggplot(xyd,aes(x=x,y=y,fill=z))+geom_tile(aes(alpha=ifelse(a
ggplot(xyd, aes(x=x, y=y, fill=z, alpha=a)) + 
       geom_tile() + 
       scale_alpha(range=c(0,1), limits=c(0.5,1), na.value = 0)