我怎样才能用 tmap 舍入 choropleth 地图中的整数中断

how can I round integer breaks in choropleth map with tmap

我用 tm_polygons 制作了等值线图(不是可重现的示例)

label <- labels_rec %>%
filter(VAR == sgf_var & TABLEAU == tab)

map <- tm_shape(sgf_polyg) +
tm_polygons(col = "V137", style = "equal", title="sgf_var",
          , textNA = "Valeur manquante", 
          legend.hist = TRUE,
          legend.format=list(fun=function(x) formatC(x, digits=0, format="f"), 
text.separator= "-")) +
tm_borders("#9E9E9E") +
tm_layout(main.title = label$LIBELLE, main.title.size = 0.5,legend.outside = TRUE, 
legend.title.size = 0.7, legend.hist.width = 1) 

我想四舍五入我的整数数字 示例:
20000 到 23000
23000 到 26000
26000 到 29000 等等

formatC(x, digits=0, format="f") 只能与十进制数一起使用。

利用 ?tmap::tm_polygons 中的默认示例,您可以通过格式化函数 formatC(formatC(floor(x / 1000) * 1000, digits = 0, format = "f"):

实现您想要的结果
library(tmap)

data(World)

# Constant fill
tm_shape(World) +
  tm_fill(
    col = "gdp_cap_est", style = "equal", title = "sgf_var",
    textNA = "Valeur manquante",
    legend.hist = TRUE,
    legend.format = list(fun = function(x) formatC(formatC(floor(x / 1000) * 1000, digits = 0, format = "f")), text.separator = "-")
  ) +
  tm_borders("#9E9E9E")