这是我绘制RR的R代码:
# Display posterior means of RR(relative risks)
va$RRmean <- end4$summary.fitted.values[, 1]
library(classInt)
breaks.qt2 <-classIntervals(va$RRmean, n=7, style="quantile", intervalClosure="right")
va.palette<-brewer.pal(9, name="OrRd")
spplot(va, "RRmean", col="transparent", col.regions=va.palette, at=breaks.qt2$brks)
但是,有一个县显示为空白(虽然它在其他县中具有最高价值)。代码有问题吗?我检查了实际值,它是一个有效的数值。
问题是你在ssplot
中使用作为参数的数值,所以颜色开始“循环”。你需要使用RRmean
功能改造的classIntervals
。如果没有它,您将观察到类似于下图左图所示的结果。请参阅下面的代码(使用Philladelphia Homicide Rate dataset):
library(rgdal)
library(sp)
library(ggplot2)
library(RColorBrewer)
library(classInt)
dsn <- "Philly3"
philly <-readOGR(dsn=dsn, layer = "Philly3") #
pal <- brewer.pal(9, "OrRd")
breaks_qt <- classIntervals(philly$HOMIC_R, n = 7, style = "quantile")
br <- breaks_qt$brks
offs <- 0.0000001
br[1] <- br[1] - offs
br[length(br)] <- br[length(br)] + offs
philly$HOMIC_R_bracket <- cut(philly$HOMIC_R, br)
g1 <- spplot(philly, "HOMIC_R", col.regions = pal, main = "Philadelphia homicide, with numerical value")
g2 <- spplot(philly, "HOMIC_R_bracket", col.regions = pal, main = "Philadelphia homicide, with categorical values")
library(gridExtra)
grid.arrange(g1, g2, nrow = 1)
输出: