ggplot2 stat_density2d的透明度和Alpha级别,带有R中的地图和图层

Jas*_*lns 9 maps visualization r ggplot2

任何人都可以提供关于处理多层透明度和alpha级别的最佳方法的建议(参考ggplot2)?在下面的示例代码中,很难看到各个州的边界线(例如南卡罗来纳州,北卡罗来纳州,弗吉尼亚州) - 我尝试过设置,alpha=0.00001但这似乎会让事情变得更糟......

library(ggplot2)

all_states = map_data("state")
set.seed(103)
df = data.frame(long=sample(-90:-70,100,T), lat=sample(30:45,100,T))
p = ggplot() + 
    geom_polygon(data=all_states, aes(x=long, y=lat, group=group), color="white", fill="grey80") + 
    stat_density2d(data=df, aes(x=long, y=lat, fill=..level.., alpha=..level..), # HELP HERE ???
                   size=2, bins=5, geom='polygon') +
    geom_point(data=df, aes(x=long, y=lat), 
               color="coral1", position=position_jitter(w=0.4,h=0.4), alpha=0.8) + 
    theme_bw()
p
Run Code Online (Sandbox Code Playgroud)

Did*_*rts 12

当您将某个变量映射到alpha=内部时aes(),默认情况下,alpha值的范围为0.1到1(最低maped变量值为0.1,最高值为1).您可以使用scale_alpha_continuous()并设置不同的最大和最小范围值来更改它.

ggplot() + 
  geom_polygon(data=all_states, aes(x=long, y=lat, group=group), 
               color="white", fill="grey80") + 
  stat_density2d(data=df, aes(x=long, y=lat, fill=..level.., alpha=..level..), 
                 size=2, bins=5, geom='polygon') +
  geom_point(data=df, aes(x=long, y=lat), 
             color="coral1", position=position_jitter(w=0.4,h=0.4), alpha=0.8) + 
  theme_bw()+
  scale_alpha_continuous(range=c(0.1,0.5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述