无法运作的ggplot alphas

时间:2012-09-09 15:32:47

标签: r ggplot2

我正在尝试绘制一个半透明的矩形,其颜色与密度曲线上方的背景颜色相同,因此它会为后者创建一个较浅色的垂直区域(可视化一系列兴趣,例如高峰时段) 。如你所见,alpha失败了。我想知道是否有人可以使用以下代码?

我知道ggplot的alpha通道问题还有其他帖子(for example),但似乎没有解决这个问题,并且目前的情况不明确是版本明确的。

提前致谢:)

enter image description here

d <- data.frame(rnorm(100, mean = 0, sd = 100)); names(d) <- 'data'

ggplot(d) + geom_density(aes(x=data),col=NA, fill='grey30') + opts(panel.background=NULL) +
  geom_rect(aes(xmin=-30, xmax=30, ymin=0, ymax=0.005), fill='white',alpha=0.2)

ggplot(d) + geom_density(aes(x=data),col=NA, fill='grey30') + opts(panel.background=NULL) +
  geom_rect(aes(xmin=-30, xmax=30, ymin=0, ymax=0.005), fill='#FFFFFF40')

1 个答案:

答案 0 :(得分:9)

您似乎选择的alpha太低,请尝试1/256,这是最低的透明度:

ggplot(d) + geom_density(aes(x = data), col = NA, fill = 'grey30') + 
  theme(panel.background = NULL) +
  geom_rect(aes(xmin = -30, xmax = 30, ymin = 0, ymax = 0.005), 
            fill = 'white', alpha = 1/256)

enter image description here

这对我来说也是一个意想不到的解决方案,因为取alpha = I(1/d)意味着d是一些必须过度绘制以提供纯色的点,所以我们期望{{1}得到不同的结果1}}。正如您所说,这是一个与1/256相关的常见问题。