使用R绘制地图时,如何为特定区域添加纹理?

5

我正在学习R语言中的地图,但是遇到了一个问题,我无法解决。

假设有以下脚本:

tmp_dir = tempdir()
url_data = "http://www.sharegeo.ac.uk/download/10672/50/English%20Government%20Office%20Network%20Regions%20(GOR).zip"
zip_file = sprintf("%s/shpfile.zip", tmp_dir)
    download.file(url_data, zip_file)
unzip(zip_file, exdir = tmp_dir)
library(maptools)
gor=readShapeSpatial(sprintf('%s/Regions.shp', tmp_dir))
col=gray(gor$NUMBER/sum(gor$NUMBER))
col[5] = NA
plot(gor, col=col)

我希望能够为缺失数据的“col”向量状态添加纹理,而不是仅仅保留白色。 例如,在这种情况下,我正在寻找类似以下内容的东西:

enter image description here

我如何在绘图的特定部分添加纹理,尤其是在处理地图时? 我已经了解了一些类似add.texture的函数,但我无法以灵活的方式使用它们。

1个回答

2

plot.SpatialPolygons() 可以使用线条纹理。如果参数 density 不是 NAplot.SpatialPolygons() 将使用线条纹理。

:  # (skip)
library(maptools)
col=gray(gor$NUMBER/sum(gor$NUMBER))
col[5] = NA

plot(gor, col=col)          # It's easy to use the argument `add=T`
plot(gor[5,], add=T, density=10, angle=90, col="blue")      # Left map

## Of cource, you can draw the map at once without `add=T`
col2  <- col
col2[4:5] <- c("red", "blue")

plot(gor, col=col2, density=c(rep(NA,3), 30, 10, rep(NA,4)), 
     angle=c(rep(NA,3), 0, 90, rep(NA,4)))                  # Right map

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接