2

在开放街道地图地图图块上绘制空间多边形时如何调整透明度?我可以用 ggmaps 来做,但我必须分别做每种颜色。

从 OpenStreetMap 包中获取地图图块的代码:

map = openproj(openmap(
            c(lat= max(as.numeric(as.character(zip$INTPTLAT10))),
             lon=   min(as.numeric(as.character(zip$INTPTLON10)))),
            c(lat= min(as.numeric(as.character(zip$INTPTLAT10))),
              lon= max(as.numeric(as.character(zip$INTPTLON10)))),
                       type="osm"))
plot(map)

热图:

zip=readShapePoly( "tl_2010_04_zcta510.shp" )
zip$groups2=sample(1:10, length(zip[,1]), replace=T)
brks=classIntervals(zip$groups2, n=9, style="quantile")$brks
cols <- colors[findInterval(zip$groups2, brks, all.inside=TRUE)]
plot( zip , col = cols , axes=F , add=TRUE)

这是 2010 年美国人口普查中的 phoenix .shp 文件。

4

1 回答 1

2

遇到一些困难,我找到了将指定文件作为 zip 文件的 ftp 站点(在其他方向出现之前): ftp: //ftp2.census.gov/geo/tiger/TIGER2010/ZCTA5/2010/

然后进一步的困难接踵而至,因为需要另外两个包来运行上面的代码:

require(maptools)
require(classInt)

RGB 编码颜色值中的透明度信息是存储为字符值的 8 位 nex-number 中的最后两个十六进制代码条目。附加一个小于“FF”的值会导致某种程度的透明度,但事实证明“NA”值实际上并没有正确附加,需要重置为 NA_character_:

 cols <- paste0( cols, "20")  # as suggested in my earlier comment
 plot(map)
 plot( zip , col = cols , axes=F , add=TRUE)
#Error in polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, col = col,  : 
#  invalid color name 'NA20'
 is.na(cols) <- grepl("NA", cols)
 plot( zip , col = cols , axes=F , add=TRUE)

我没有发布将 7MB pdf 文件转换为 PNG 格式的 1.4 MB 文件,而是放大了亚利桑那州的东北角并截取了屏幕截图: 在此处输入图像描述

通过透明覆盖可以看到地理特征和道路。那是在地块下部的弗拉格斯塔夫和金曼之间运行的 US-40。

于 2013-07-30T16:54:08.217 回答