如何编辑R函数spplot中的调色板?

时间:2015-09-02 14:39:24

标签: r plot choropleth gwmodel

我正在使用R包GWmodel。在绘制GWR的输出时,我发现自己无法编辑ssplot函数中的侧栏。

我正在使用的几行代码(数据已经在包中)就足够了。您只需要安装GWmodel库:

library(GWmodel)
data("DubVoter")

bw.gwr.1 <- bw.gwr(GenEl2004 ~ DiffAdd + LARent + SC1 + Unempl + LowEduc + Age18_24 + Age25_44 + Age45_64, data = Dub.voter, approach = "CV", kernel = "gaussian", adaptive = FALSE)

gwr.res <- gwr.basic(GenEl2004 ~ DiffAdd + LARent + SC1 + Unempl + LowEduc + Age18_24 + Age25_44 + Age45_64, data = Dub.voter, bw = bw.gwr.1,  kernel = "gaussian", adaptive = FALSE, F123.test = TRUE)



Greens <- c("#238B45","#74C476","#BAE4B3","#EDF8E9")

spplot(gwr.res$SDF, "Unempl", cuts = 4, at = c(fivenum(gwr.res$SDF$Unempl)), col.regions = Greens)

结果如下:

enter image description here

正如您在spplot函数中看到的,参数at的值为c(fivenum(gwr.res $ SDF $ Unempl)),它对应于min,1st四分位数,中位数,第三四分位数,最大值在gwr.res $ SDF $ Unempl。看一下图,我们可以看到颜色将这个分区分为4个类(使用参数cut = 4 at = c(fivenum(gwr.res $ SDF $ Unempl)))。

我想要做的是使用调色板编辑侧栏并添加替换6,4,2,0,-2和c中的值(fivenum(gwr.res $ SDF $ Unempl)) :

-2.427,-0.916,-0。 6.706,-0.494,7.566

1 个答案:

答案 0 :(得分:1)

这是有效的代码:

labelat = fivenum(gwr.res$SDF$Unempl)
labeltext = labelat 


spplot(gwr.res$SDF, "Unempl", cuts = 4, at = c(fivenum(gwr.res$SDF$Unempl)), col.regions = Greens,
colorkey=list(width=0.3,      
              space="right", 
              tick.number=5, 
              labels=list(  
                at=labelat, 
                labels=labeltext )))

enter image description here

请注意,侧栏上的值不同于-2.427,-0.916,-0。 6.706,-0.494,7.566,因为数据不同。