我想在美国大陆的R(使用地图套餐)制作一张地图,其中一个州填写黑色(CA),一个州(TX)填写交叉舱口或一些其他模式。其他州应该有黑色边框,没有填充。我确信这是一个简单的解决方案,但我还没有找到它。
答案 0 :(得分:4)
我最近遇到了同样的问题,但有太多的状态要用手工制作多边形。似乎只需将密度= 10添加到特定状态的地图中,就会用阴影条填充它。
因此,对于此示例,请尝试:
map("state")
map("state", add = TRUE, region = c("texas"), density=10, fill=TRUE)
map("state", add = TRUE, region = c("california"), fill=TRUE)
我在这里得到了这个想法: Fill Geospatial polygons with pattern - R
答案 1 :(得分:3)
我可以通过保存状态数据和重新绘制来实现这一点。需要一点polygon
摆弄,以便状态多边形的轮廓以正确的顺序绘制,而不会使自身重复。需要多少摆弄可能取决于您想要的状态多边形。在这种情况下,我只需要逆转德克萨斯州/新墨西哥州的边界。
library(maps)
map("state")
tempplot <- map("state", add = TRUE, region = c("texas"),plot=FALSE)
# fix the border with new mexico to draw it in the correct order
tempplot$x[829:861] <- tempplot$x[861:829]
tempplot$y[829:861] <- tempplot$y[861:829]
polygon(
na.omit(tempplot$x),
na.omit(tempplot$y),
border=1,
density=10
)
map("state", add = TRUE, region = c("california"), fill=TRUE, col="black")
答案 2 :(得分:1)
这应该是一个好的开始。
library(maps)
map('state')
map("state", col = "black", fill = TRUE, add = TRUE, region = c('california'))
map("state", col = "red", fill = TRUE, add = TRUE, region = c('texas'))
PS:交叉阴影填充图案通常被拒绝。所以我在这里用红色填充德克萨斯州。
修改强>
一个选择是使用 lty 和 lwd 来区分状态。它看起来很棘手,但结果很清楚。
map("state", lty = 3)
map("state", col = "black", fill = TRUE, add = TRUE, region = c('california'))
map("state", lty=1,lwd = 3, fill = FALSE, add = TRUE, region = c('texas'))