【问题标题】:Add legend to ggmap将图例添加到 ggmap
【发布时间】:2018-04-25 12:17:30
【问题描述】:

我正在尝试将图例添加到由 R 中的 ggmap 包生成的绘图中。我正在使用的数据集是

    Latitude  Longitude  amount
    61.37072 -152.40442  436774
    32.80667  -86.79113 3921030
    34.96970  -92.37312 1115087
    33.72976 -111.43122 5068957

我使用的代码是

library(ggplot2)
library(ggmap)

MyMap <- get_map(location = c(lon = -96.5, lat = 40.68925), zoom = 4,maptype = "terrain", scale = 2)
ggmap(MyMap)+ 
geom_point(data = data,aes(x = Longitude , y = Latitude ),size=sqrt(data$amount)/800,col='darkred', shape = 19,alpha = .5) 

现在我想为这个情节添加图例。图例应显示地图上圆圈的大小对应于一定数量。我该怎么做?

【问题讨论】:

  • 尝试把“size”放到aes-funktion里面。

标签: r ggplot2 legend ggmap


【解决方案1】:

size 参数应包含在geom_point 函数的aes() 部分中,如下所示:

plot <- ggmap(MyMap) + 
  geom_point(data = data,aes(x = Longitude , y = Latitude, size=amount), col='darkred', shape = 19,alpha = .5)
plot 

如果您想进一步自定义比例,可以使用可选参数scale_size_area() 为图例选择breaks and labels。例如:

plot +  scale_size_area(breaks = c(436774, 1115087, 4000000, 5068957),
          labels = c("436774", "1115087", "4000000", "5068957"))

更改点大小:

如果你想调整点的大小,你最好使用scale_size函数,它可以让你指定一个范围:

plot +  scale_size(range = c(5,9))

【讨论】:

  • 谢谢你,Mikey,你的代码对我有用。但我还有一个问题。是否可以自定义地图上圆圈的大小?我想比较不同年份的数据。但圆圈的大小几乎保持不变。
  • 我已经为你更新了答案 :) 你也可以考虑像 scale_size(range = c(5,9), limits = c(0,10000000)) 这样的东西。如果您觉得此答案有用,请将其标记为已接受。
猜你喜欢
  • 2016-06-22
  • 1970-01-01
  • 2015-10-11
  • 2015-05-30
  • 2016-03-12
  • 2018-07-24
  • 2018-10-24
  • 1970-01-01
  • 2022-01-23
相关资源
最近更新 更多