是否可以指定颜色尺度门槛?
请看下面的例子:
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
我想要的是一个低于0.5的值获得的alpha值为0,使得下部左半将是不可见的。 很显然,我可以改变的原始数据,但会破坏传说。
该阈值是否正常,以及阈值之外的值被设置为NA
; 问题是,一个alpha
的NA
是越来越呈现为完全不透明。 设置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)
我试图用秤来控制阿尔法没有一个是完全成功的。 我最好的尝试是使用ifelse
控制的价值:
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))
因此,需要一种不同的方法:删除您不希望从数据绘制的值:
xyd <- with(xyd, xyd[a>0.5, ])
ggplot(xyd, aes(x=x, y=y, fill=z)) +
geom_tile(aes(alpha=a))