如何使用spplot函数和RColorBrewer填充区域

时间:2018-01-05 12:21:49

标签: r maps geospatial sp

我有数据文件,有两列,Column1-States;列2 - 饱和度(%)。 使用package sp和RColorBrewer;为了制作地图,我下载了gadm - level1 india。 但我无法在印度地区投入比例,我该怎么办,请查看我的R代码 代码如下所示

ind1 = readRDS("IND_adm1.rds")
spplot(ind1, "NAME_1", scales=list(draw=T), colorkey=F, main="India")
ind1$NAME_1 = as.factor(ind1$NAME_1)
ind1$adhaar = runif(length(ind1$NAME_1))
spplot(ind1,"NAME_1",  col.regions=rgb(0,ind1$adhaar, 0), colorkey=T, 
       main="Indian States") 

1 个答案:

答案 0 :(得分:2)

我修改了你的代码。您想使用adhaar来填补印度地区。看到OP的评论,adhaar似乎是一个数据文件。为了绘制下面的图形,我们需要一个包含下面adhaar部分中spplot()位置的饱和度值的列。

library(sp)
library(raster)
library(RColorBrewer)

ind1 <- getData("GADM", country = "india", level = 1)

set.seed(111)
ind1$NAME_1 <- as.factor(ind1$NAME_1)
ind1$adhaar <- runif(length(ind1$NAME_1))

spplot(ind1, "adhaar",
      colorkey = list(space = "bottom"), scales = list(draw = TRUE),
      main = "India")

enter image description here

如果您想使用RColorBrewer并尝试反映饱和度(我假设为adhaar),您可以使用cutscol.region。您需要考虑如何设置cuts。这部分由您决定。如果您想获得帮助,您希望提供最小的可重现数据以及代码。否则,这里的每个人都很难帮助你。无论如何,我希望这能为你提供一些想要为你的任务做些什么的想法。

spplot(ind1, "adhaar",
      colorkey = list(space = "bottom"), scales = list(draw = TRUE),
      main = "India", cuts = 5,
      col.regions = brewer.pal(6, "Greens"))

enter image description here