有没有办法根据变量的特定范围定义调色板中断?
以连续变量x为例,范围从0到1。我将palette
定义为:
palette <- colorNumeric(palette = rev("RdYlGn"), domain = NULL, na.color = NA)
并在相应的传单函数中,我将color
定义为:
color = ~palette(x)
这会返回漂亮的地图,但是,断点是在相等的空间定义的: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的x_brks
函数中传递这个新变量color = ~palette(x_brks)
- 我收到此错误:Error in Summary.factor(c(6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 6L, 5L, : ‘range’ not meaningful for factors
。
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
尝试使用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")