gpt4 book ai didi

r - 我应该什么时候使用 geom_map?

转载 作者:行者123 更新时间:2023-12-03 19:01:55 25 4
gpt4 key购买 nike

我正在制作一个在 ggplot 中添加点的等值线图。所以,按照 geom_map help docs 的最后一个例子

我想到了这个:

require(ggplot2)
require(maps)

set.seed(47)
county_map <- map_data("county", "washington")
names(county_map)[5:6] <- c("state", "id")
countyData <- data.frame(id = unique(county_map$id), value = rnorm(39))
map1 <- ggplot(countyData, aes(map_id = id)) +
geom_map(aes(fill = value), map = county_map, colour = "black") +
coord_map() +
expand_limits(x = county_map$long, y = county_map$lat)

print(map1)

这对等值线图非常有用。 (除此之外,我对 map_data 函数感到非常兴奋。)但后来我尝试添加点

pointData <- structure(list(xx = c(-119.872483243387, -122.809038239929, 
-122.143143065312
), yy = c(48.1320425447619, 46.7352071436801, 47.9911548514037
)), .Names = c("xx", "yy"), row.names = c(1746L, 7281L, 2692L
), class = "data.frame")

map1 + geom_point(mapping = aes(xx, yy), data = pointData)

而且我无法让它工作。我尝试了很多变体,将 group 设置为 NULL,命名 aes 参数等。没有运气。所以我找到this question它通过将 map 数据与等值线数据合并并使用 geom_polygon 来毫无问题地完成同样的事情,无论如何这看起来更直接。 (首先我花了一点时间来计算 ID 映射,因为我没有意识到我必须删除 region 列名才能成功使用 id。第一种方法的语法对我来说仍然很奇怪。)

那么,两个问题:

  1. 如何使用上面显示的方法和 geom_map 从不同的数据框中添加点?
  2. 更重要的是,与 geom_polygon 方法相比,使用 geom_map 方法有什么优势吗?

最佳答案

这对我有用:

map1 <- ggplot(countyData) +
geom_map( map = county_map, aes(map_id = id,fill = value),
colour = "black") + coord_map() +
expand_limits(x = county_map$long, y = county_map$lat)
map1 + geom_point(mapping = aes(xx, yy), data = pointData)

对我来说,geom_mapgeom_polygon 的包装器。它是一个包含所有地理设置(按 id 分组的纬度和经度)的图层。

我会在绘制 map 时使用 geom_map,在绘制任何多边形类型时使用 geom_polygon

编辑 添加 map

enter image description here

关于r - 我应该什么时候使用 geom_map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14698616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com