如何为ggmap()图例背景设置半透明效果?
解决ggplot中图例背景半透明的问题
当然可以给图例背景设置半透明效果!你之前尝试直接给legend.background或legend.box.background的element_rect()传alpha参数没生效,是因为ggplot里的element_rect的alpha参数逻辑和我们直观预期不太一样,正确的做法是用alpha()函数来包装颜色值,把透明度直接整合到颜色参数里。
举个实际的代码示例:
library(ggplot2) ggplot(mtcars, aes(x = wt, y = mpg, color = factor(cyl))) + geom_point() + theme( # 设置图例背景为白色半透明 legend.background = element_rect(fill = alpha("white", 0.5), color = NA), # 若要设置图例外层框的背景,同样用alpha()处理颜色 legend.box.background = element_rect(fill = alpha("lightgray", 0.3), color = "black") )
你提到tmap里的tm_layout()可以通过legend.bg.color和legend.bg.alpha分开设置参数,ggplot里虽然没有这种拆分式的参数,但用alpha()函数把颜色和透明度绑定在一起,就能达到完全一致的半透明效果。
很高兴看到你已经通过这个方法解决了问题,成功实现了想要的半透明图例背景效果!
内容的提问来源于stack exchange,提问作者Manojit




