Ho trovato risposte simili a domande come questa, ma la maggior parte di esse utilizza i pacchetti rworldmap
, ggmap
, ggsubplot
o geom_subplot2d
. Si veda ad esempio here o here.Come tracciare il diagramma a barre sulla mappa ggplot2
Mi piacerebbe sapere come è possibile tracciare altri oggetti ggplot come un grafico a barre su una mappa, creata da uno shapefile. Quello che sto usando può essere scaricato here.
EDIT
Come @beetroot giustamente osservato, il nuovo file che può essere scaricato sotto il link postato sopra è cambiata significativamente. Pertanto, i nomi dello shapefile, ecc. Vengono regolati.
library(rgdal)
library(ggplot2)
library(rgeos)
library(maptools)
map.det<- readOGR(dsn="<path to your directory>/swissBOUNDARIES3D100216/swissBOUNDARIES3D/V200/SHAPEFILE_LV03", layer="VECTOR200_KANTONSGEBIET")
map.kt <- map.det[[email protected]$KANTONSNUM=="CH01000000"|[email protected]$KANTONSNUM=="CH19000000",]
#get centroids
map.test.centroids <- gCentroid(map.kt, byid=T)
map.test.centroids <- as.data.frame(map.test.centroids)
map.test.centroids$KANTONSNR <- row.names(map.test.centroids)
#create df for ggplot
kt_geom <- fortify(map.kt, region="KANTONSNUM")
#Plot map
map.test <- ggplot(NULL)+
geom_polygon(data=kt_geom, aes(long, lat, group=group), fill="white")+
coord_fixed()+
geom_path(data=kt_geom, color="gray48", mapping=aes(long, lat, group=group), size=0.2)+
geom_point(data=map.test.centroids, aes(x=x, y=y), size=9, alpha=6/10)
mapp
Ciò risulta in tale mappa. Fin qui tutto bene.
Tuttavia, sto avendo difficoltà che combinano due trame come mappa map.test
e, per esempio, questo:
geo_data <- data.frame(who=rep(c(1:2), each=2),
value=as.numeric(sample(1:100, 4, replace=T)),
KANTONSNR=rep(c(1,19), 2))
bar.testplot <- ggplot()+
geom_bar(data=geo_data, aes(factor(id),value,group=who),position='dodge',stat='identity')
I barcharts deve trovarsi al centro dei due poligoni, cioè dove i due punti sono. Potrei produrre i grafici a barre e tracciarli sulla mappa separatamente, se questo rende le cose più facili.
quindi perché non 'ggsubplot' non funziona per voi, come nell'esempio si parla? –
@DavidH Sembra che il pacchetto sia stato rimosso dal repository CRAN. – Thomas
È ancora su [github] (https://github.com/garrettgman/ggsubplot). Non sono sicuro se sia funzionale dopo tutte le recenti modifiche in 'ggplot2'. – Axeman