我正在开始使用 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)
Run Code Online (Sandbox Code Playgroud)
我想要一种方法来将纹理添加到“col”向量上缺少数据的状态,而不是仅仅将其保留为白色。例如,在这种情况下,我正在寻找类似的东西:
如何向绘图的特定部分添加纹理,特别是在使用地图时?我读过像 add.texture 这样的函数,但我无法以如此灵活的方式使用它们。
plot.SpatialPolygons()能够使用线条纹理。如果参数density不是NA,plot.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
Run Code Online (Sandbox Code Playgroud)