如果你想使用ggplot
你需要强制SpatialPolygonsDataFrame
to a data.frame
.
ggplot2
提供了一些fortify
将创建正确格式的数据的方法。
目前fortify.SpatialPolygonsDataFrame
方法不保留data
组件,它确实提供了一个列id
其中包含来自data.frame
内data
原来的插槽SpatialPolygonsDataFrame
.
注意data.frames
是存储此信息的低效方法(每个多边形的每个顶点 1 行)。
因此,以下内容可以工作,但速度很慢并且可能会导致内存问题
c10 <- fortify(colorado.county10)
c10d <- cbind(c10, colorado.county10@data[c10$id,])
ggplot(c10d, aes(long, lat, group = group)) +
geom_polygon(aes(fill = factor(P0010001)), colour = alpha("white", 1/2), size = 0.2) +
scale_fill_brewer(pal = "PuRd")
Using base
绘图功能会更快,并且不会占用太多资源。