我的地图制作代码根据人口普查数据生成地图,并将重要点绘制为 tm_dots() 图层。我想做的是区分点的类型(例如,如果位置是“非正式”或“商业”)。
tm_shape(bristol) + tm_fill("population", palette = "YlOrRd",
auto.palette.mapping = TRUE,
title = "Bristol Population",
breaks = c(0,5,10,15,20,25), colorNA = "darkgrey") + tm_borders("grey25",alpha = 0.7, lwd = 0.1) +
tm_dots("n", size=0.1,col="green", shapeNA = NA, title = "Spaces") +
tm_legend(text.size=1,title.size=1.2,position=c("left","top")) +
tm_layout(legend.outside = TRUE, legend.outside.position = "bottom", title.snap.to.legend = TRUE)
我正在寻找的本质上是:
tm_dots("n", size=0.1,col=Classification, shapeNA = NA, title = "Spaces")
添加几个 tm_dots() 层不是一种选择。我也无法重命名点图例,对此也有任何建议。
谢谢你的帮助!
解决方案
为了将来参考,我添加offices
到bristol
via left_join
,从而将Classification
变量添加到SpatialPolygonsDataFrame
. showNA = NA
尽管有参数,但我在显示 NA 值时遇到了问题,但colorNA = NULL
工作正常。最后一行:
tm_dots(size=0.1,col="Classification", palette = "Set1", colorNA = NULL)