Как нанести диаграмму на карту ggplot2 [дубликат]

На этот вопрос уже есть ответ здесь:

Построение гистограмм на карте с помощью ggplot2? 1 ответ

Я нашел похожие ответы на подобные вопросы, но большинство из них используют пакетыrworldmap, ggmap, ggsubplot или жеgeom_subplot2d, Смотри напримерВот или жеВот.

Я хотел бы знать, как я могу нанести на карту другие объекты ggplot, такие как гистограмма, которая создается из шейп-файла. Тот, который я использую, может быть загруженВот.

РЕДАКТИРОВАТЬ

Как правильно заметил @beetroot, новый файл, который можно скачать по указанной выше ссылке, значительно изменился. Поэтому имена шейп-файлов и т. Д. Корректируются.

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[map.det@data$KANTONSNUM=="CH01000000"|map.det@data$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

Это приводит к такой карте. Все идет нормально.

Тем не менее, я испытываю трудности при объединении двух участков, таких как картаmap.test и, например, этот:

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')

Чертежи должны находиться в центре двух многоугольников, то есть там, где находятся две точки. Я мог бы изготовить столбики и нанести их на карту отдельно, если это облегчит задачу.

Ответы на вопрос(1)

Ваш ответ на вопрос