多米尼加共和国的 R 等值线图
R choropleth map of the Dominican Republic
我想制作一张多米尼加共和国的等值线图。至于边界,我只需要那个国家的州。
我试过以下方法:
map <- GetMap('Dominican Republic' , zoom = 8 , )
PlotOnStaticMap(map)
PlotPolysOnStaticMap(map , polys)
您可以在没有 RGoogleMaps 的情况下执行此操作。加州大学戴维斯分校有适用于地球上每个地区的 shapefile 和 RData 文件。以下注释代码:
- 下载 DR
管理级别 1 区域的 RData SpatialPolygonsDataFrame
- 抓住我的
theme_map
- 制作样本数据集
- 为 DR
绘制具有适当地图投影的等值线图
您可以以类似的方式使用其他实际的 shapefile:
library(sp)
library(ggplot2)
# theme_map
devtools::source_gist("https://gist.github.com/hrbrmstr/33baa3a79c5cfef0f6df")
# the DR "shapefile"
download.file("http://biogeo.ucdavis.edu/data/gadm2/R/DOM_adm1.RData", "DOM_adm1.RData")
load("DOM_adm1.RData")
# for plotting with ggplot2
dr_map <- fortify(gadm)
# build some sample data, note that we'll be using
# the polygon "id" for plotting so you'll need that in the
# data frame
set.seed(1492)
choro <- data.frame(id=gadm@data$ID_1,
place=gadm@data$NAME_1,
value=sample(100, nrow(gadm@data)))
# you can look at the data with this (it won't be shown here)
head(choro)
# plot
gg <- ggplot()
# base map layer
gg <- gg + geom_map(data=dr_map, map=dr_map,
aes(x=long, y=lat, map_id=id),
fill="white", color="#7f7f7f", size=0.25)
# DR choro layer
gg <- gg + geom_map(data=choro, map=dr_map,
aes(fill=value, map_id=id),
color="#7f7f7f", size=0.25)
# lambert is a gd proj for DR
gg <- gg + coord_map("lambert", lat0=17.5, lat1=20)
# clean up map chart junk
gg <- gg + theme_map()
# move legend
gg <- gg + theme(legend.position="right")
# plot it
gg
我创建了一个 R 包,choroplethrAdmin1,旨在简化在 R 中创建世界上每个国家的行政级别 1 等值线图。
library(choroplethr)
library(choroplethrAdmin1)
# ?admin1_map just draws an outline
admin1_map("dominican republic")
要创建等值线,您需要有一个包含两列的 data.frame:一列命名区域,一列命名值。区域必须是地图的名称。
# get a column named region, with the names of the regions
df = get_admin1_regions("dominican republic")
df$value = 1:nrow(df) # add a column called "value"
# ?admin1_choropleth needs the name of the country and the data
admin1_choropleth(country.name = "dominican republic", df = df)
我想制作一张多米尼加共和国的等值线图。至于边界,我只需要那个国家的州。
我试过以下方法:
map <- GetMap('Dominican Republic' , zoom = 8 , )
PlotOnStaticMap(map)
PlotPolysOnStaticMap(map , polys)
您可以在没有 RGoogleMaps 的情况下执行此操作。加州大学戴维斯分校有适用于地球上每个地区的 shapefile 和 RData 文件。以下注释代码:
- 下载 DR 管理级别 1 区域的 RData SpatialPolygonsDataFrame
- 抓住我的
theme_map
- 制作样本数据集
- 为 DR 绘制具有适当地图投影的等值线图
您可以以类似的方式使用其他实际的 shapefile:
library(sp)
library(ggplot2)
# theme_map
devtools::source_gist("https://gist.github.com/hrbrmstr/33baa3a79c5cfef0f6df")
# the DR "shapefile"
download.file("http://biogeo.ucdavis.edu/data/gadm2/R/DOM_adm1.RData", "DOM_adm1.RData")
load("DOM_adm1.RData")
# for plotting with ggplot2
dr_map <- fortify(gadm)
# build some sample data, note that we'll be using
# the polygon "id" for plotting so you'll need that in the
# data frame
set.seed(1492)
choro <- data.frame(id=gadm@data$ID_1,
place=gadm@data$NAME_1,
value=sample(100, nrow(gadm@data)))
# you can look at the data with this (it won't be shown here)
head(choro)
# plot
gg <- ggplot()
# base map layer
gg <- gg + geom_map(data=dr_map, map=dr_map,
aes(x=long, y=lat, map_id=id),
fill="white", color="#7f7f7f", size=0.25)
# DR choro layer
gg <- gg + geom_map(data=choro, map=dr_map,
aes(fill=value, map_id=id),
color="#7f7f7f", size=0.25)
# lambert is a gd proj for DR
gg <- gg + coord_map("lambert", lat0=17.5, lat1=20)
# clean up map chart junk
gg <- gg + theme_map()
# move legend
gg <- gg + theme(legend.position="right")
# plot it
gg
我创建了一个 R 包,choroplethrAdmin1,旨在简化在 R 中创建世界上每个国家的行政级别 1 等值线图。
library(choroplethr)
library(choroplethrAdmin1)
# ?admin1_map just draws an outline
admin1_map("dominican republic")
要创建等值线,您需要有一个包含两列的 data.frame:一列命名区域,一列命名值。区域必须是地图的名称。
# get a column named region, with the names of the regions
df = get_admin1_regions("dominican republic")
df$value = 1:nrow(df) # add a column called "value"
# ?admin1_choropleth needs the name of the country and the data
admin1_choropleth(country.name = "dominican republic", df = df)