我正在處理包含所有省份的阿富汗shapefile。我最終想通過地區指揮來繪製一些數據,每個地區都包含幾個省(這就是我所說的:http://en.wikipedia.org/wiki/File:Afghanistan_ISAF_Sept2008.jpg)。我對R中的形狀文件的處理並不是非常熟悉,但在這個問題上我還沒有找到很多教程。是否有可能重新繪製多邊形或覆蓋RC邊界並以這種方式繪製一個choropleth?謝謝。更改/添加空間邊界/多邊形shapefile R
回答
像這樣的東西?
代碼:
library(rgdal) # for readOGR(...)
library(ggplot2) # for fortify(...) and rendering the map
setwd("<directory with all your files>")
regional.commands <- read.csv("regional.commands.csv")
map <- readOGR(dsn=".", layer="afghanistan_province_boundaries_-_34_provinces")
data <- data.frame(id=rownames([email protected]),[email protected]$Prov34Na)
data <- merge(data,regional.commands,by="Province")
map.df <- fortify(map)
map.df <- merge(map.df,data,by="id", all.x=T)
map.df <- map.df[order(map.df$order),]
ggplot(map.df, aes(x=long,y=lat, group=group))+
geom_polygon(aes(fill=RC))+
geom_path(colour="grey70")+
coord_fixed()
在這個例子中,regional.commands.csv
從數據(手動!!!!)組裝在ISAF website。該文件只有兩列:Province
和RC
(地區命令)。據推測,你已經有了這樣的東西,但並不覺得有必要分享它。阿富汗shapefile獲得here。
說明
的shape文件被讀入到使用readOGR(...)
R,創建一個 「SpatialPolygonsDataFrame」 對象(map
)。該對象有兩個主要部分,一個包含多邊形邊界座標的多邊形部分和一個包含每個多邊形信息(例如省名)的數據部分。後者可以使用[email protected]
來引用。
每個polgyon都有一個唯一的ID。這些存儲在[email protected]
的行名稱中。因此,首先我們創建一個數據幀data
,其中[email protected]
的行名稱爲id
,[email protected]
的相關列(列)的列爲Province
。
data <- data.frame(id=rownames([email protected]),[email protected]$Prov34Na)
如果您有不同的阿富汗shapefile,[email protected]
中的相應列可能會有所不同。
現在我們將其與基於常見Province
列的regional.commands
數據幀合併。
data <- merge(data,regional.commands,by="Province")
data
現在有3列:Province
,id
和RC
(區指揮)。有一點需要注意的是,顯然,安援部隊覺得它最清楚如何拼寫阿富汗省的名字。其中一些不是對應於地圖屬性表中的拼寫。因此,您可能需要手動修復該問題...
現在我們使用fortify(...)
從map
創建適合繪圖的數據框(map.df
)。此數據框有一個id
列,所以我們將其與基於id
的data
合併。
map.df <- merge(map.df,data,by="id", all.x=T)
最後,這一切都融合搞砸行的順序,所以我們重新排序在map.df
使用順序列。
map.df <- map.df[order(map.df$order),]
其餘的只是生成圖層和渲染圖。
這真棒謝謝!我在此期間使用qgis結束了,但這是好多了 – chilland
- 1. R,空間多邊形
- 2. 如何用R中的另一個多邊形shapefile剪切多邊形shapefile?
- 3. Z - R中的多邊形(shapefile)的值
- 4. R空間多邊形採樣錯誤
- 5. R空間多邊形疊加空間線
- 6. 多邊形的邊界框
- 7. 添加多個jpanel到容器,添加空間/邊界?
- 8. MySQL - 使用空間多邊形(邊界)查找點
- 9. 如何從R中的另一個shapefile獲取包含多邊形質心的shapefile的多邊形?
- 10. 在R中更快地檢測shapefile多邊形中的點更快R
- 11. shapefile中的着色多邊形
- 12. 將shapefile多邊形添加到Choropleth映射(Choroplethr)
- 13. 處理多邊形的多邊形算法,處理跨邊界的多邊形
- 14. R,傳單多邊形添加黑色邊框
- 15. shapefile中的奇怪多邊形
- 16. R:對多邊形
- 17. r多邊形圖
- 18. SpatialPolygonsDataFrame中每個多邊形的邊界框R
- 19. 多邊形添加算法
- 20. 計算多個多邊形之間共享邊界的長度
- 21. 更改UIView邊界的形狀
- 22. 使用引導3添加邊界之間的邊界
- 23. openlayers 3 - 單擊多邊形邊界
- 24. 谷歌地圖邊界多邊形
- 25. PostGIS:通過邊界過濾多邊形
- 26. 向SVG多邊形上的特定邊添加描邊
- 27. shapefile有多種形狀,但只有一個多邊形
- 28. r在美國和加拿大之間添加粗體邊界。
- 29. 如何使用多邊形標識訪問shapefile中的特定多邊形?
- 30. 從空間多邊形數據框中繪製一個多邊形
你有一個查詢表,告訴你哪個省的功能在哪個區域命令?你嘗試過'rgeos'包中的「gUnion」等功能嗎?你能分享你的shapefile嗎?你甚至設法讀過它嗎? – Spacedman
交叉帖子是sociopathic – mdsumner