在R中,如何在使用ggplot2中的scale_size时使点透明?

7
这个方程是从我之前的问题中得出的(链接)。我想绘制代表总人口的点,到目前为止,我使用scale_size使点的大小相对于其总人口而变化。

但是,我想让这些点透明,因为它们遮盖了地图。然而,只要我试图传达的信息清晰明了,我就愿意尝试其他选项。 enter image description here

# load required packages
library(ggmap)
library(ggplot2)

# query map of Birmingham, AL
al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11,
       source = "osm", maptype = 'terrain')

al1MAP <- ggmap(al1)+ geom_point(data=quote_bmh, 
          aes(x=IntPtLon, y=IntPtLat, size=TotPop, colour="gold2"),
          colour="gold2") + scale_size(range=c(0,15))

3
一种替代方法是使用反距离加权插值(例如在gstat中的idw)、克里金插值(例如在automap中),或者一些核密度方法(即2D密度)来插值人口数据点。 - Paul Hiemstra
2个回答

10
为了使用统一的透明度,只需在 geom_point 中添加 alpha = 0.3alpha 可以在0和1之间进行设置,这将取决于您想要的透明度量级。如果您希望使透明度依赖于变量,请将 alpha = var_name 添加到 mapping 参数(即 aes 部分),其中 var_name 是您想要用于透明度的变量的列名。

1
那个 Paul 真快,看到就去回帖了,瞬间就答复了。+1 - Tyler Rinker
1
哈哈,我先打了答案的第一部分,然后编辑添加更多细节。这种问题回答得太快了,所以我需要快点 :)。 - Paul Hiemstra
哇,你回答得太快了,我得等十分钟才能接受你的答案。非常感谢! - Ken
1
太好了,我很高兴能帮忙:),这是在等待EGU海报展开始的好方式:) - Paul Hiemstra

5
另一种选择是使用空心点,例如geom_point(shape = 21)。这将使得点下方的地图更易读,同时使点的边缘清晰可见。
(不幸的是,我的雇主阻止了谷歌API,因此我无法发布结果)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接