R tmap 动态修改图例以防止图例值重叠

R tmap modify legends dynamically to prevent overlapping legend values

有没有办法动态地防止 tmap 中图例中的重叠值?

举个例子:

library(tmap)
data("World")
tm_shape(World) +
tm_polygons("HPI", n=7)

图例没有明确说明 15、20、25、30、35 或 40 属于什么类别值。

一个解决方案是这样的:

 tm_shape(World) +
 tm_polygons("HPI", n=7,
   labels = c("0 to 15", ">15 to 20", ">20 to 25", ">25 to 30", ">30 to 35", ">35 to 40", ">40 to 45"))

但是,每次您有不同的 n 类别数值时,您显然必须手动更改此设置。

无论地图中如何使用类别,都可以自动生成类似的输出吗?

以下代码从闭区间(即 >=)创建方括号,并为开区间(即 <)创建 "simple" 括号。这是一个合理的解决方案吗?您还可以在 legend.format 参数中阅读更多详细信息。

library(tmap)
#> Warning: replacing previous import 'sf::st_make_valid' by
#> 'lwgeom::st_make_valid' when loading 'tmap'
data("World")
tm_shape(World) +
  tm_polygons("HPI", n = 7, legend.format = list(scientific = TRUE, format = "f"))

reprex package (v0.3.0)

于 2020 年 3 月 3 日创建

我已经成功地使用了它:

legend.format = list(format = "f", text.separator = "<"))