ccc*_*807 1 gis r esri shapefile
使用R和两个形状文件:tl_2015_01_prisecroads(alabama)和tl_2015_13_prisecroads georgia),使用readOGR()读取两个R对象.我需要关注一个包括西乔治亚州和东阿拉巴马州的地区.我试过rbind()和spRbind()无济于事.
ga_al <- rbind(alabama, georgia, fix.duplicated.IDs=TRUE)
Error in as(x, "SpatialLines") :
no method or default for coercing “logical” to “SpatialLines”
ga_al <- spRbind(alabama, georgia)
Error in spRbind(as(obj, "SpatialLines"), as(x, "SpatialLines")) :
non-unique line IDs
Run Code Online (Sandbox Code Playgroud)
问题1:如何组合两个形状文件来映射两个状态的区域?问题2:如何放大组合形状文件的较小区域?
library(tigris)
library(sp)
library(ggplot2)
library(ggthemes)
Run Code Online (Sandbox Code Playgroud)
该tigris
PKG是一个更好的接口TIGER数据.devtools::install_github("walkerke/tigris")
.
alabama <- primary_secondary_roads("alabama")
georgia <- primary_secondary_roads("georgia")
Run Code Online (Sandbox Code Playgroud)
基础图可以将两者结合在一起,而不需要rbind
:
plot(alabama)
plot(georgia, add=TRUE)
Run Code Online (Sandbox Code Playgroud)
ggplot2图也可以:
# this takes a little while if doing both primary & secondary roads
alabama_dat <- fortify(alabama)
georgia_dat <- fortify(georgia)
# so does this
gg <- ggplot()
gg <- gg + geom_map(data=alabama_dat, map=alabama_dat,
aes(x=long, y=lat, map_id=id),
color="black", fill="white", size=0.15)
gg <- gg + geom_map(data=georgia_dat, map=georgia_dat,
aes(x=long, y=lat, map_id=id),
color="black", fill="white", size=0.15)
gg <- gg + coord_map()
gg <- gg + theme_map()
gg
Run Code Online (Sandbox Code Playgroud)
您可以使用xlim
和ylim
在ggplot中"缩放".