我有一个显示澳大利亚偏远地区的 shapefile,从澳大利亚统计局获得:
http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1270.0.55.005July%202011?OpenDocument
同一个 URL 是 PDF“ASGS Remoteness Structure Edition 2011 PDF Maps”——我正在尝试从这个 PDF 文档中复制第一张地图。
我已阅读 shapefile 并将颜色信息添加到data
插槽:
ra <- readShapeSpatial("RA_2011_AUST", delete_null_obj = TRUE)
ra@data$COLOUR <- "#FFFFFF"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 0] <- "#006837"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 1] <- "#31A354"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 2] <- "#78C679"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 3] <- "#C2E699"
ra@data$COLOUR[(as.numeric(as.character(ra@data$RA_CODE11)) %% 10) == 4] <- "#FFFFCC"
我唯一要做的就是绘制地图!这就是我卡住的地方...
ra@polygons
是一个包含 35 个多边形的列表,每个多边形都有一个插槽ID
,它是数据帧的索引ra@data
。所以我所要做的就是告诉plot()
在ra@data$COLOUR[ID]
. 嗯,不完全是。35 个多边形(“多边形”类)中的每一个都有自己的多边形列表(“多边形”类);总共有 6902 个多边形!!!
我的理解plot()
是,我必须以与绘制多边形相同的顺序向它传递一个颜色向量。因此,我相信我必须创建一个长度为 6902 的向量,每个元素都保存相关多边形的颜色值。到目前为止我做得怎么样?
如果按顺序绘制多边形,那将很容易,但事实并非如此。35 个多边形中的每一个都有plotOrder
一个整数向量槽,因此颜色向量可能必须按每个向量中的值排序。
在这一点上,这一切似乎有点太复杂了。我在这里完全偏离轨道了吗?
谢谢你的建议!