栅格图的无线性分化色标

问题描述 投票:0回答:1

I具有一个

SpatRast
对象,其中包含一个正变量,下限为0。但是,低于1.3的值表示空间分散体,而值高于1.3表示空间浓度。因此,我想使用以1.3分化的颜色比例来映射此栅格。这些值将需要以两种不同的方式映射,这是连续和间隔的。但是,对于这两种表示,由此产生的传奇都需要在底部显示0,最大值显示在顶部。

尽管我进行了各种尝试,但我无法设法获得我想要的东西。在这里,我使用间隔表示形式报告了一个最小的示例和结果图,但是我无法以相反的顺序显示传奇。然后,我还需要产生相应的表示,将变量视为连续。 我没有绑定到任何特定库。有了

terra

似乎不可能扭转传奇顺序,当要连续绘制变量时,似乎也无法获得颜色尺度的非线性定制。但是我也尝试了

rasterVis

ggplot2
,在每种情况下,我都偶然发现了其他障碍。另外,在我的示例中,我获得了带有
RColorBrewer
的调色板,但是我又没有专门绑定到此库。
有人可以帮我吗?谢谢
library(RColorBrewer)
bks <- c(0,0.4,0.8,1.3,2,4,8,15,30)
cold <- rev(RColorBrewer::brewer.pal(3, "Blues"))
warm <- RColorBrewer::brewer.pal(((length(bks)-1)-length(cold)), "Reds")
colors <- c(cold, warm)
terra::plot(x,
     breaks = bks, 
     col = colors,
     box=F,
     axes=F)


    

enter image description here示例数据:

library(terra) r <- rast(system.file("ex/elev.tif", package="terra")) x <- scale_linear(r, 0, 30) colors <- c('#3182BD', '#9ECAE1', '#DEEBF7', '#FEE5D9', '#FCAE91', '#FB6A4A', '#DE2D26', '#A50F15')
r ggplot2 terra rastervis
1个回答
0
投票
对于间隔传奇,您可以创建一个分类的栅格并做:

b <- classify(x, bks) ord <- rev(levels(b)[[1]][,2]) terra::plot(b, col = colors, box=F, axes=F, sort=ord)
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.