如何用&gt;表示最高和最低值<! - ?

时间:2015-11-25 20:27:10

标签: r raster

我有一个光栅,当我绘制它时,我将图例作为一个矩形。我被要求将图例绘制为此图中的图例(底部和顶部有两个箭头)。

enter image description here

三角形中的颜色表示高于15且低于-10的所有值。如果三角形很难放在图例上。它可以放在 符号&gt; &LT;在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)

1 个答案:

答案 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)))
)

enter image description here

在上面,at的{​​{1}}参数控制着图中颜色会发生变化的中断点。我们设置它使得levelplot和-10之间的值是一种颜色,然后颜色每2.5个单位更改一次,直到15,之后颜色恒定到-InfInf列表的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]

enter image description here