2016-04-29 4 views
-1

Есть ли способ объединения этих трех карт с использованием граней?geom_polygon in ggplot2 - Границы для разных начинок?

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 вытесняет координаты из шейп-файла. Я попытался использовать расплав (reshape2), но я не знаю, как применить его к этому случаю - с другим geom_ * намного проще. Надеюсь, вы можете мне помочь.

+0

Я искал имя файла. Кажется, что ваш файл содержит полигоны для Италии? Это правильно? – jazzurro

+0

@jazzurro Привет, да! – Gaspare

+0

Можете ли вы предоставить ссылку для получения файла? Я также хотел бы спросить, чего вы пытаетесь достичь в конце. Можете ли вы сказать это в своем вопросе? – jazzurro

ответ

2

Отправляя ответ, чтобы ни один будущий искатель SO не думал, что qplot() - это даже отдаленная идея. Не требуется принимать или + 1. Пожалуйста, просто прекратите резку &, вставляя код из сообщений в блоге, даже не пытаясь его перехватить.

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)), [email protected]) 

prov_map <- fortify(prov, region="NOME_PRO") 

fac <- data.frame(area=rep([email protected]$NOME_PRO, 3), 
        measure=rep(c("A", "B", "C"), each=nrow([email protected])), 
        val=sample(100, nrow([email protected])*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 

enter image description here

+0

Спасибо за вашу помощь и извинения за то, как я сформулировал вопрос. – Gaspare

Смежные вопросы