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