如何使用 tmap 在 choropleth 地图中舍入整数中断

Posted

技术标签:

【中文标题】如何使用 tmap 在 choropleth 地图中舍入整数中断【英文标题】:how can I round integer breaks in choropleth map with tmap 【发布时间】:2021-12-30 19:19:04 【问题描述】:

我用 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") 只能与十进制数字一起使用。

【问题讨论】:

【参考方案1】:

利用?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")

【讨论】:

以上是关于如何使用 tmap 在 choropleth 地图中舍入整数中断的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Plotly choropleth 地图上创建符号/按钮

R中的Cartogram + choropleth地图

使用美国县级数据创建 Choropleth 地图

在 tmap 上手动设置地图比例

choropleth地图数据未加载到由bing提供的excel地图中的状态IN和MN

如何使用 Folium 将簇标记添加到 Choropleth