我怎样才能用 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")
我用 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")