我有一个光栅,当我绘制它时,我将图例作为一个矩形。我被要求将图例绘制为此图中的图例(底部和顶部有两个箭头)。
三角形中的颜色表示高于15且低于-10的所有值。如果三角形很难放在图例上。它可以放在 符号> <在15和10之前!。
on the top > 15 and on the bottom < -10
library(raster)
r <- raster(nrows=10, ncols=10); r <- setValues(r, 1:ncell(r))
plot(r)
答案 0 :(得分:3)
正如您所说,传达相同信息的一种方式是指示底部和顶部颜色代表&#34;小于-10&#34;并且&#34;大于15&#34;。这相当于说斜坡的末端分别是负无穷大和正无穷大。
以下是rasterVis::levelplot
:
# First, some fake data
r <- raster(matrix(runif(100, -20, 30), 10))
library(rasterVis)
levelplot(r, margin=FALSE, at=c(-Inf, seq(-10, 15, 2.5), Inf),
colorkey=list(at=seq(-12.5, 17.5, 2.5),
labels=c(expression(-infinity),
seq(-10, 15, 2.5),
expression(infinity)))
)
在上面,at
的{{1}}参数控制着图中颜色会发生变化的中断点。我们设置它使得levelplot
和-10之间的值是一种颜色,然后颜色每2.5个单位更改一次,直到15,之后颜色恒定到-Inf
。 Inf
列表的at
元素控制颜色图例的颜色中断。负和正无穷大将由-12.5和17.5表示。 colorkey
的{{1}}元素决定了将在这些位置绘制的标签。我们可以使用labels
来包含无穷大符号。
如果要使用发散斜坡,可以根据斜坡的负侧与正侧的长度手动计算适当的斜坡。例如,在上面的示例中,我们需要7种正面颜色和5种负面颜色,因此我们可以创建14种颜色的渐变,并排除前2种颜色:
colorkey
然后将此渐变传递给expression
:
library(RColorBrewer)
colr <- colorRampPalette(rev(brewer.pal(11, 'RdBu')))(14)[3:14]