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

光栅图

4

2 回答 2

4

我们可以先准备一个调色板,将第三个替换为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)

在此处输入图像描述

于 2019-02-23T21:39:32.530 回答
3

这可能无关紧要,但是通过手动定义中断,您会丢失最小值附近的部分数据(您会得到白色补丁)。以下是解决此问题的方法:

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

在此处输入图像描述

于 2019-03-04T23:45:02.017 回答