Tôi đã tìm thấy câu trả lời tương tự cho các câu hỏi như thế này, nhưng hầu hết trong số họ đang sử dụng gói rworldmap
, ggmap
, ggsubplot
hoặc geom_subplot2d
. Xem ví dụ here hoặc here.Cách vẽ sơ đồ trên bản đồ ggplot2
Tôi muốn biết làm cách nào tôi có thể vẽ các đối tượng ggplot khác như biểu đồ thanh trên bản đồ, được tạo từ shapefile. Người tôi đang sử dụng có thể được tải xuống here.
EDIT
Như @beetroot một cách chính xác chỉ ra, các tập tin mới mà có thể được tải về dưới liên kết được đăng trên đã thay đổi đáng kể. Do đó, tên của shapefile vv được điều chỉnh.
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
Kết quả này trong một bản đồ như vậy. Càng xa càng tốt.
Tuy nhiên, tôi đang gặp khó khăn kết hợp hai lô như bản đồ map.test
và, ví dụ, điều này một:
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')
Các barcharts nên nằm ở trung tâm của hai đa giác, tức là nơi hai điểm là. Tôi có thể sản xuất các barcharts và vẽ chúng trên bản đồ một cách riêng biệt, nếu điều đó làm cho mọi thứ dễ dàng hơn.
vậy tại sao không 'ggsubplot' không làm việc cho bạn như trong ví dụ bạn đề cập đến? –
@DavidH Dường như gói đã bị xóa khỏi kho lưu trữ CRAN. – Thomas
Mặc dù vậy vẫn còn trên [github] (https://github.com/garrettgman/ggsubplot). Bạn không chắc nó có hoạt động hay không sau tất cả các thay đổi gần đây trong 'ggplot2'. – Axeman