R 非功能性GGS

R 非功能性GGS,r,ggplot2,R,Ggplot2,我试图在密度曲线上方绘制一个与背景颜色相同的半透明矩形,这样它就可以创建一个较浅色调的垂直区域(一种可以将各种兴趣(如高峰时间)可视化的方法)。正如你所看到的,alpha失败了。我想知道是否有人可以让下面的代码工作 我知道还有其他关于ggplot的alpha通道问题()的帖子,但似乎没有一篇能够解决这个问题,目前还不清楚当前的情况是什么 提前感谢:) d您似乎选择了太低的alpha,例如尝试1/256,这是尽可能低的透明度: ggplot(d) + geom_density(aes(x = d

我试图在密度曲线上方绘制一个与背景颜色相同的半透明矩形,这样它就可以创建一个较浅色调的垂直区域(一种可以将各种兴趣(如高峰时间)可视化的方法)。正如你所看到的,alpha失败了。我想知道是否有人可以让下面的代码工作

我知道还有其他关于ggplot的alpha通道问题()的帖子,但似乎没有一篇能够解决这个问题,目前还不清楚当前的情况是什么

提前感谢:)


d您似乎选择了太低的
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)


这对我来说也是一个出乎意料的解决方案,因为采用
alpha=I(1/d)
意味着
d
是一系列必须过涂才能形成纯色的点,因此我们预计
1/256
的结果会有所不同。正如您所说,这是一个与
geom\u rect

相关的非常常见的问题,请尝试更低的
alpha
,例如1/256@Julius,你能把它作为答复吗?它对我非常有效。是的,就是它,谢谢@Julius。我一定错过了一些关于比例的东西,因为20%的alpha通常在ggplot和其他R.geotheory中可见。我补充了一些细节。我认为你没有错过任何东西,而且它与
geom\u rect
有关。15个月过去了,我终于明白了原因!ggplot为数据对象中的每一行绘制一个rect,而不管geom_rect是否使用它(回想起来很明显)。因此,解决方案是为geom_\n rect提供一个单行数据对象,例如,
geom_\n rect(data=d[1,],…
),并解决问题。
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)