我正在处理包含所有省份的阿富汗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