Geom_Point没有正确分配ggmap上的大小

时间:2018-04-15 19:21:23

标签: r ggplot2 ggmap

所以我正在将犯罪水平绘制到伦敦,但是尺寸和颜色与我使用的数字不成比例。我将保留下面的代码和图形,如果有人能给我解释为什么会发生这种情况,我会非常感激。感谢

London <- c(lon=-0.1278, lat=51.5074)
London_map <- get_googlemap(center = London, zoom = 10)
plot(London_map)
LondonRob <- read.csv("Rob London.csv")
Areas <- as.character(LondonRob$ï..Borough)
locs_geo <- geocode(Areas)
df <- cbind(LondonRob, locs_geo)

Map <- ggmap(London_map) + 
  geom_point(data = df, 
             aes(x = lon, y = lat,
                 size = LondonRob$X2012.13, 
                 color = LondonRob$X2012.13))  

Map1 <- Map + labs(color="Robbery")
Map1 <- Map1 + labs(size="Figures")
Map1

London Robbery Figures 2012

1 个答案:

答案 0 :(得分:0)

scale_size_continuous,这是将连续变量映射到大小时的默认值,使用range参数来确定比例。默认情况下,这是c(1, 6)ggplot会将X2012.13变量中的变体转换为从1到6的范围。

在许多情况下,使用积分,您不需要此默认值。相反,你希望能够直接比较尺寸,0根本没有点。然后,您可以改为使用scale_size_area

这有一个额外的好处,即缩放区域而不是半径,这在视觉上表现得更好。

此外,你很可能不应该这样做

aes(x = lon, y = lat, size = LondonRob$X2012.13, color = LondonRob$X2012.13) 

而是

aes(x = lon, y = lat, size = X2012.13, color = X2012.13) 

作为一般规则,永远不要在$内使用aes,事情可能会出现严重错误,没有任何错误或警告。