ggplot:将 alpha 值添加到整个图层

ggplot: Adding alpha value to a whole layer

我正在尝试将一些箱线图绘制为半透明。当我设置 alpha 值时,只有填充透明度被调整,而不是 borders/strokes/colors.

知道如何使整个 geom 图层透明吗?

library(ggplot2)
ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot(aes(fill = factor(cyl), color = factor(cyl)), alpha = 0) 

这不会开箱即用,因为对于多边形 ggplot2 仅适用于 alphafill,而不是 colour。为了解决这个问题,我们将通过采用低级内部结构并在需要的地方添加 alpha 映射来应用以下临时补丁。

查看 the following gist。不会post在这里,因为它太长了。

ggplot(mtcars, aes(factor(cyl), mpg)) + 
  geom_boxplot(aes(fill = factor(cyl), color = factor(cyl)), alpha = 0.4, size = 1.4) 

之前:

之后: