gpt4 book ai didi

r - 定义传单的调色板中断

转载 作者:行者123 更新时间:2023-12-05 03:08:13 24 4
gpt4 key购买 nike

有没有一种方法可以根据变量的特定范围定义调色板中断?以取值范围为 0 到 1 的连续变量 x 为例。我将 palette 定义为:

palette <- colorNumeric(palette = rev("RdYlGn"), domain = NULL, na.color = NA)

并且在相应的传单函数中,我将颜色定义为:

color = ~palette(x)

这会返回一个漂亮的 map ,但是,中断定义在相等的空间:0.0, 0.2, 0.4, ..., 1.0

相反,我将中断定义为:

df@data$x_brks <- cut(x, 
breaks=c(0, 0.55, 0.65, 0.75, 0.85, 0.95, 1.0),
labels=c("<=0.55", ">0.55 and <=0.65", ">0.65 and <=0.75",
">0.75 and <= 0.85", ">0.85 and <=0.95", ">0.95")
)

并希望保持相同的调色板(最低范围为红色,最高范围为绿色)。我正在绘制多个图层,我想为所有图层保持相同的比例。

我无法在 Leaflet 的 color = ~palette(x_brks) 函数中传递这个新变量 x_brks - 我收到此错误:摘要错误.factor(c(6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 5L, : 'range' 对因子没有意义

实现此目标的最佳方法是什么?

最佳答案

试试 colorBin

risk.bins <-c(0, 0.55, 0.65, 0.75, 0.85, 0.95, 1.0)
risk.pal <- colorBin("plasma", bins = risk.bins, na.color = "#aaff56")

然后在传单函数中

   color = ~ risk.pal(value)

可以通过按原样插入文本在 addLegend 中手动设置标签

labels = c("<=0.55",
">0.55 and <=0.65",
">0.65 and <=0.75",
">0.75 and <= 0.85",
">0.85 and <=0.95",
">0.95")

关于r - 定义传单的调色板中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45776232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com