有没有办法使用facet组合这三个地图?
emi <- readShapePoly('prov2011_g.shp')
names(emi) <- c('REG', 'ID', 'NOME', 'SHAPE', 'AREA', 'MIG1', 'MIG2', 'MIG3')
emi_geom <- poly_coords(emi)
map <- qplot(PolyCoordsY, PolyCoordsX, data = emi_geom, group = Poly_Name, geom = 'polygon', fill = MIG1)
map1 <- qplot(PolyCoordsY, PolyCoordsX, data = emi_geom, group = Poly_Name, geom = 'polygon', fill = MIG2)
map2 <- qplot(PolyCoordsY, PolyCoordsX, data = emi_geom, group = Poly_Name, geom = 'polygon', fill = MIG3)
我遵循了这个很棒的教程(http://www.r-bloggers.com/maps-with-ggplot2/)。 poly_coords函数从shapefile中提取坐标。我曾尝试使用melt(reshape2),但我不知道如何将它应用于这种情况 - 使用其他geom_ *要容易得多。 希望你能帮助我。
答案 0 :(得分:2)
发布答案,以便未来的SO搜索者认为qplot()
甚至不是一个好主意。不接受或+ 1要求。请停止切割&amp;从博客文章中粘贴代码,甚至没有试图理解它。
library(rgdal)
library(maptools)
library(ggplot2)
library(viridis)
prov <- readOGR("prov2011_g.shp", "prov2011_g", stringsAsFactors=FALSE, verbose=FALSE)
longlat <- "+init=epsg:4121 +proj=longlat +ellps=GRS80 +datum=GGRS87 +no_defs +towgs84=-199.87,74.79,246.62"
prov <- SpatialPolygonsDataFrame(spTransform(prov, CRS(longlat)), prov@data)
prov_map <- fortify(prov, region="NOME_PRO")
fac <- data.frame(area=rep(prov@data$NOME_PRO, 3),
measure=rep(c("A", "B", "C"), each=nrow(prov@data)),
val=sample(100, nrow(prov@data)*3, replace=TRUE))
gg <- ggplot()
gg <- gg + geom_map(data=prov_map, map=prov_map,
aes(x=long, y=lat, map_id=id),
color="#2b2b2b", size=0.1, fill=NA)
gg <- gg + geom_map(data=fac, map=prov_map,
aes(fill=val, group=measure, map_id=area))
gg <- gg + scale_fill_viridis()
gg <- gg + facet_wrap(~measure)
gg <- gg + coord_map()
gg <- gg + ggthemes::theme_map()
gg