【问题标题】:How to map an Indian state with districts in r?如何在 r 中绘制一个带有地区的印度州?
【发布时间】:2015-06-08 10:18:53
【问题描述】:

我想在 R 软件中用各自的地区绘制印度的不同州。我已经尝试使用 GADM,2 级数据来获取坐标。

我关注了这个帖子Mapping just one State of India and writing its name inside the state boundary。但是,我无法对任何状态的数据进行子集化并将其用于映射。

我尝试过的:

map <- fortify(Karnataka)
map$id <- as.integer(map$id) 
dat <- data.frame(id = 216:242, district = Karnataka) 
map_df <- inner_join(map, dat, by = "id") 
centers <- data.frame(gCentroid(Karnataka, byid = TRUE)) 
centers$state <- dat$district

【问题讨论】:

  • 您能展示一下您的尝试吗?说你已经尝试了一些东西!= 表明你已经尝试了一些东西。

标签: r maps


【解决方案1】:

我可以使用以下命令映射一个州及其地区边界。

India <- getData("GADM", country = "India", level = 2)  
Karnataka <- subset(India, NAME_1 == "Karnataka")
map <- fortify(Karnataka);  
map$id <- as.integer(map$id);  
dat <- data.frame(id = 216:242, district = Karnataka@data$NAME_2);  
map_df <- inner_join(map, dat, by = "id");  
centers <- data.frame(gCentroid(Karnataka, byid = TRUE));  
centers$state <- dat$district;  


ggplot() +
geom_map(data = map_df, map = map_df,
     aes(map_id = id, x = long, y = lat, group = group),
     color = "#ffffff", fill = "#bbbbbb", size = 0.25) +
geom_text(data = centers, aes(label = state, x = x, y = y), size = 2) +
coord_map() + labs(x = "", y = "", title = "Districts of Karnataka") 

【讨论】:

    【解决方案2】:

    您可以使用 R 中的 Google 地图轻松轻松地完成此操作。在 ggmap 内有很多选项。下面的示例非常基本,但可以通过设置您喜欢的选项来完全自定义。

    map <- qmap('Karnataka', zoom = 7, maptype = 'hybrid')
    map
    

    library(ggmap)
    qmap('Karnataka')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2019-04-05
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多