如何在拥挤的tmap图例中修复垂直空间[R]

时间:2018-09-28 20:52:42

标签: r tmap

如何解决tmap图例中的垂直空间问题,如链接的基本R示例中所示? ({Vertical spaces in legendy.intersp未被tmap_add_legend()识别为参数)

基本的tmap代码:

library(sf)
library(tmap)
tm_shape(st_read(system.file('shape/nc.shp', package = 'sf'))) + 
  tm_polygons() + 
  tm_add_legend(
    type = 'symbol', 
    labels = c('Variable A', 'Variable B', 'Variable C', 'Variable D', 'Variable E'), 
    col = c('#832424FF', 'rosybrown4', 'red', 'red', '#4F8DC2'),
    shape = c(19, 19, 4, 5, 15)
  ) 

1 个答案:

答案 0 :(得分:1)

我无法找到您所要求的图例项填充,但是如果它满足您的目的,则可以稍微调整sizelegend.text.size

如果您想在单词之间使用填充,但不介意图例图标看起来更大/仍然靠近,则

s <- st_read(system.file('shape/nc.shp', package = 'sf'))
tm_shape(s) + 
tm_polygons() + 
tm_add_legend(
    type = 'symbol', 
    labels = c('Variable A', 'Variable B', 'Variable C', 'Variable D', 'Variable E'), 
    col = c('#832424FF', 'rosybrown4', 'red', 'red', '#4F8DC2'),
    shape = c(19, 19, 4, 5, 15), 
    size = 1.2
) + 
tm_layout(legend.text.size = 0.8)

如果要在图例图标之间放置填充,但文本标签之间的距离还可以,

tm_shape(s) + 
tm_polygons() + 
tm_add_legend(
    type = 'symbol', 
    labels = c('Variable A', 'Variable B', 'Variable C', 'Variable D', 'Variable E'), 
    col = c('#832424FF', 'rosybrown4', 'red', 'red', '#4F8DC2'),
    shape = c(19, 19, 4, 5, 15), 
    size = 0.5
) + 
tm_layout(legend.text.size = 1.0)

我希望有人能找到一个更好的选择,可以同时调整两个填充物,但这同时可能对您有用。