Изменить существующую палитру R Color Brewer - PullRequest
0 голосов
/ 24 февраля 2019
library(raster); library(rasterVis); library(RColorBrewer)

Я хочу изменить тему «Коричневый зеленый», чтобы средний разрыв (от 140 до 160) был серым.Это возможно?

Вот пример с набором данных вулкана.

breaks <- c(100, 120, 140, 160, 180, 195) # manual breaks
mapTheme <- rasterTheme(region=brewer.pal(6,"BrBG"))
levelplot(volcano, at=breaks, par.settings=mapTheme)

raster plot

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Это может быть неуместно, но, вручную определяя разрывы, вы пропускаете части данных в пределах минимума (где вы получаете белые пятна).Ниже приведен способ обойти эту проблему:

#setting breaks
myMat.max <- ceiling(max(volcano))
myMat.min <- floor(min(volcano))
breaks <- round(seq(myMat.min, myMat.max, length.out = 6)) # do not use by = x

# Customising Brewer palette
pal <- brewer.pal(6,"BrBG")
pal[3] <- "grey"
mapTheme <- rasterTheme(region = pal)

#plot
levelplot(volcano, colorkey=list(at=breaks, labels=as.character(breaks)), 
          par.settings=mapTheme, cuts=length(breaks)-2)

enter image description here

0 голосов
/ 24 февраля 2019

Сначала мы можем подготовить цветовую палитру и заменить третью на grey, а затем поставить ее в аргумент region.

library(raster)
library(rasterVis)
library(RColorBrewer)

breaks <- c(100, 120, 140, 160, 180, 195) # manual breaks
pal <- brewer.pal(6,"BrBG")
pal[3] <- "grey"
mapTheme <- rasterTheme(region = pal)
levelplot(volcano, at=breaks, par.settings=mapTheme)

enter image description here

...