【问题标题】:How to create State & district level map in using GADM and ggplot?如何使用 GADM 和 ggplot 创建州和地区级别的地图?
【发布时间】:2021-07-22 18:01:25
【问题描述】:

我正在使用 Covid 数据 并希望在 map 上绘制 州和地区 级别的印度数据。

我有印度的州、地区名称以及案例,但不需要纬度、经度

我遇到了这个所以发帖How to map an Indian state with districts in r?

并尝试了raster::getData("GADM", country = "India", level = 2) %>% as_tibble(),但这不起作用,因为它没有lat、lon、shapefile等。

library(raster)
library(rgdal)
library(rgeos)

state_level_map <- raster::getData("GADM", country = "India", level = 1) %>% 
  as_tibble() %>% 
  filter(NAME_1 == "Rajasthan") %>% 
  fortify() 

  ggplot() +
  geom_map(data= state_level_map, map = state_level_map, 
           aes(x = long, y = lat, map_id = id, group = group))

我是空间数据/地图的新手,不知道在这种情况下我该如何进行。是否可以从任何 r 包中获取州/地区名称信息的纬度、经度、形状文件等,或者唯一的方法是手动搜索经度、经度?

感谢任何帮助。

【问题讨论】:

    标签: r ggplot2 cartography


    【解决方案1】:

    你快到了。为此使用sf

    library(raster)
    library(sf)
    library(rgeos)
    library(dplyr)
    
    state_level_map <- raster::getData("GADM", country = "India", level = 1) %>%
      st_as_sf() %>%
      filter(NAME_1 == "Rajasthan")
    
    ggplot() +
      geom_sf(data = state_level_map)
    

    然后您可以轻松地使用aes() 来改变您对 ggplot 的美感,就像您通常使用变量一样。

    sf 使用类似数据框的表示法,将属性数据和几何图形合并到一个易于使用的数据框中。看看print(state_level_map)。也就是说,您可以使用地区名称连接数据以增强您的属性并通过aes(color = yourjoinedvar) 将它们可视化。

    【讨论】:

    • 太棒了。一直在搜索,但找不到像这个一样简单的解决方案。真的真的很感谢你的帮助:))
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    相关资源
    最近更新 更多