我使用shiny
和leaflet
处理一些数据,但遇到一个似乎在这里和那里突然出现的问题,但是我找不到解决方案或实现我发现的部分
让我们使用
library(leaflet)
a <- c(5,4,1,1,2,1,1,1)
vector a
是应用程序中某些过滤器的结果,可以更改。如果值分布均匀,它可以工作,但在上面的示例中,使用以下
pal <- colorQuantile("YlGn", a, n = 5)
并使用
pal(a)
在
leafletProxy("myMap", data = myData) %>%
clearShapes() %>%
addPolygons(data = theData,
fillColor = pal(a),
fillOpacity = 0.8,
color = "#BDBDC3",
weight = 2,
popup = borough_popup)
与
cut.default(x,binsToUse,标签= FALSE,include.lowest = 是的,:“中断”不是唯一的
我找到了一些GitHub comments here,但很难将其实施为可行的解决方案。
我需要某种方法来解决此问题,因为我无法事先确定有多少个垃圾箱可以工作。
答案 0 :(得分:0)
下面是github示例-您尝试过吗?
quantileNum <- 5
probs <- seq(0, 1, length.out = quantileNum + 1)
bins <- quantile(a, probs, na.rm = TRUE, names = FALSE)
while (length(unique(bins)) != length(bins)) {
quantileNum <- quantileNum - 1
probs <- seq(0, 1, length.out = quantileNum + 1)
bins <- quantile(a, probs, na.rm = TRUE, names = FALSE)
}
pal <- colorBin("YlGn", bins = bins)
答案 1 :(得分:-1)
我不得不在继承的二手代码中处理这个问题,尽管在我自己的代码中,是事先获得分位数后调用了colorBin。
我通过复制colorBin的源代码制作了一个新函数,使它起作用,唯一的变化是用.bincode()替换了cut()(并删除了它的label = FALSE参数)。位于同一楼层的分位数将具有相同的颜色,此后我再也没有遇到任何问题。