R:tmap 图例格式

Cya*_*121 2 format r legend tmap

我正在尝试创建一个函数来映射特定州学区的不同变量。然而,我在格式化图例时遇到了一些问题。目前,我已经列出了适合地图的最佳方式(水平),但一些文本被切断(低于平均贫困率),我想在图例中的数字标签中添加 % 。我的代码和图例的图像如下。非常感谢您能提供的任何帮助。谢谢。

MakeLEAMap <-function(StateNum,NCHE_VAR,VAR1_NAME,In,Folder){
  as.character(substitute(StateNum))
  as.character(substitute(NCHE_VAR))
  as.character(substitute(NCHE_In))
  as.character(substitute(VAR1_NAME))
  as.character(substitute(Folder))

  map <- 
    tm_shape(LEA_1415_New[LEA_1415_New@data$STATEFP == StateNum, ]) +
    tm_polygons(NCHE_VAR,border.col="#000000", lwd= .5, textNA="Below Average \nPoverty Rate" ,  palette = 'Blues', style="quantile", 
                title=paste(In," State LEA Map: ",VAR1_NAME),
                legend.is.portrait = FALSE) +
    tm_text("LCITY", size=NCHE_VAR,scale=.8, root=2,print.tiny = FALSE, size.lowerbound = .85, bg.alpha = .75, 
            remove.overlap = TRUE,legend.size.show = FALSE, col="black") +
    tm_layout( legend.title.size = 3,
              frame = FALSE, inner.margins = c(0,.0,.05,.0), asp = 1.5,
              legend.text.size = 1, 
              legend.outside=TRUE, legend.outside.position = 'bottom',
              legend.frame = TRUE,
              legend.outside.size = .3, legend.position = c(-0.1, 0.3))

  save_tmap(map, filename=paste("State_Maps_TEST/",Folder,"/",In,".pdf", sep = ''),width=8, height=8 ) 
}
MakeLEAMap("48","Abv_Diff_Home_Pov","% Children in Poverty  minus \n% Children HCY (Ages5-17)", 
           "TX","ALL")
Run Code Online (Sandbox Code Playgroud)

这就是传说现在的样子

Jin*_*cko 7

要使图例显示百分比,请在调用中使用此函数tm_polygons

legend.format=list(fun=function(x)paste0(formatC(x,digits=0,format=“f”),“%”))

您可以使用数字(小数点),并且如果您愿意,可以删除 % 符号之前的空格。

为了使图例更清晰,可以通过制作更大的 bbox(可能使用包extent中的函数raster来读取空间对象的 bbox,然后放大它)来增加地图周围的空间,并通过调整其位置来移动图例。

这是我在不同的上下文中想到的,但也需要在图例中使用百分号tmap在此输入图像描述