我一直试图寻找这个问题的答案,但却发现了这个问题:
{{3}}
但是这并不是我想要的,因为传单地图显示了我想要的休息但是当我尝试使用pal =将它们添加到图例时我得到了一个错误
我在R中使用了ClassInt包来查找数据中的jenks自然中断,如下所示:
[0,3] (3,8] (8,16] (16,32] (32,70]
759 505 290 138 29
然后使用findColours和RcolourBrewer包:
cols_code <- findColours(cols_classes, brewer.pal(5,"YlGnBu"))
当我在我的传单地图中使用它时,它可以正常工作并按我想要的方式按主题显示颜色:
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data = foo,
fillColor = cols_code,
fillOpacity = 0.9,
color = "white",
weight = 1)
但是当我尝试使用此对象添加图例时,我收到错误:
addLegend(pal = cols_code,
values = foo$bar,
title = "title",
labFormat = labelFormat(suffix = " things"),
opacity = 0.9)
Error in if (type == "numeric") { : argument is of length zero
我尝试使用传单colorBin和colorNumeric,但它们似乎不能识别我的休息时间,而是在图例和主题中覆盖自己的间隔。
欢迎提出任何建议,我希望尽可能避免将它们转换为一个因素,因为我可以看到findColours和colorBin函数都有附加到它们的调色板,但它似乎只是查找传单colorBins / numeric。
答案 0 :(得分:2)
如果没有可重复的例子,要知道你想要什么并不容易。但试试:
pal2 <- leaflet::colorBin(palette = col.regions,
bins = length(at),
domain = at,
na.color = na.color)
其中col.regions
是生成颜色的函数(例如,某些colorRampPalette
或viridis
),at
是您的休息,而na.color
是NA
的某种颜色{1}}值。
然后你可以这样做:
leaflet::addLegend(map = m,
pal = pal2,
opacity = 1,
values = at,
title = "someTitle")
我们在 mapview 中使用它,以便我们可以:
mapview(breweries91, zcol = "founded",
at = seq(1400, 2300, 300), legend = TRUE)
您显然可以使用 mapview 来处理此问题。