如何使用 GADM 和 ggplot 创建州和地区级别的地图?
How to create State & district level map in using GADM and ggplot?
我正在使用 Covid 数据 并希望在 map
.[=14 上绘制 州和地区 级别的印度数据=]
我有印度的州、地区名称和案例,但不需要纬度、经度。
我遇到了这个所以 post 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 包中获取 State/districts 名称信息的纬度、经度、shapefile 等,或者唯一的方法是手动 google 它们的纬度、经度?
感谢任何帮助。
你快到了。为此使用 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)
.
可视化它们
我正在使用 Covid 数据 并希望在 map
.[=14 上绘制 州和地区 级别的印度数据=]
我有印度的州、地区名称和案例,但不需要纬度、经度。
我遇到了这个所以 post 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 包中获取 State/districts 名称信息的纬度、经度、shapefile 等,或者唯一的方法是手动 google 它们的纬度、经度?
感谢任何帮助。
你快到了。为此使用 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)
.