Мне нужна помощь в отображении R кодирования

Вот мой код R для построения графика RR:

# 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)

Тем не менее, есть один округ, который отображается просто белым цветом (хотя он имеет наибольшее значение среди других округов). Что-то не так с кодом? Я проверил фактическое значение, и это действительное числовое значение.

1 ответ

Проблема в том, что вы используете в ssplot в качестве числового значения аргумента цвет начинает "перерабатываться". Вам нужно использовать трансформированные RRmean от classIntervals функция Без этого вы увидите результат, аналогичный указанному на левом графике ниже. Пожалуйста, смотрите код ниже (с набором данных о количестве убийств в Филадельфии):

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)

Выход:

диаграммы

Другие вопросы по тегам