【问题标题】:ggmap + geom_point: create variable amount of "geom_points" depending on input. Plotting mapggmap + geom_point:根据输入创建可变数量的“geom_points”。绘制地图
【发布时间】:2021-07-27 17:47:39
【问题描述】:

我正在绘制地图。我有一个包含许多 (lat,lng) 坐标的数据集,每个坐标都分配给一个类型。示例:

df <- data.frame(type=c("a", "a", "b", "c"), lat=c(47, 46, 48, 48.5), lng=c(8, 8.9, 8.3, 8.3))

>df
type lat  lng
a    47   8
a    46   8.9
b    48   8.3
c    48.5 8.3

我想做的是在区域地图上绘制点,为每个组提供不同的颜色。组的数量-“类型”可以根据输入数据而变化,通常很大。

所以“a”点是绿色的,例如“b”是红色,“c”是蓝色。

目前我用来绘制小组的方法是“ggmap”:

x <- get_stamenmap(...)
ggmap(x) + geom_point(#for a) + + geom_point(#for b)+ geom_point(#for c)

如果你有 +1000 个类型,这当然是不可行的。

有没有简单的方法来做到这一点?或者至少更容易? 也许是另一个包,或者使用“for-loops”?

感谢任何建议或评论, 谢谢

【问题讨论】:

    标签: r geometry mapping coordinates ggmap


    【解决方案1】:

    也许这可能会有所帮助。在geom_point 美学中,您可以指定color 应基于data.frame 中的type 设置。您只需要包含一次geom_point 语句。此外,如果您想为不同类型指定单独的颜色,您可以使用scale_color_manual 并在那里定义它们。

    library(ggmap)
    
    set.seed(12345)
    
    points <- data.frame(type = sample(LETTERS[1:4], 10, replace = T),
                         lon = rnorm(10, -95.4, 0.1),
                         lat = rnorm(10, 29.7, 0.1))
    
    ggmap(get_stamenmap()) +
      geom_point(data = points, aes(lon, lat, color = type)) +
      scale_color_manual(values = c("A" = "blue", "B" = "green", "C" = "red", "D" = "orange"))
    

    地图

    【讨论】:

      猜你喜欢
      • 2021-10-09
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 2015-08-16
      • 2019-01-15
      相关资源
      最近更新 更多