Управление случайностью auto.placement = T
затруднительно (хотя настройка seed может помочь).
Что вы можете сделать, так это слегка отрегулировать ограничивающую рамку вашего tmap
объекта, чтобы оставалось больше места для двух или около того пропущенных букв.
Увеличение bbox на половину, вероятно, является преувеличением, но вы можете настроить его по мере необходимости.
bbox_new <- st_bbox(area_r1) # current bounding box
xrange <- bbox_new$xmax - bbox_new$xmin # range of x values
yrange <- bbox_new$ymax - bbox_new$ymin # range of y values
bbox_new[1] <- bbox_new[1] - (0.5 * xrange) # xmin - left
# bbox_new[3] <- bbox_new[3] + (0.5 * xrange) # xmax - right
# bbox_new[2] <- bbox_new[2] - (0.5 * yrange) # ymin - bottom
# bbox_new[4] <- bbox_new[4] + (0.5 * yrange) # ymax - top
bbox_new <- bbox_new %>% # take the bounding box ...
st_as_sfc() # ... and make it a sf polygon
tm_shape(area_r1, bbox = bbox_new) +
tm_fill("winner", title = "Winner", style = "cat",
palette = c("#FFFFB3", "#1F78B4", "#1A9850", "#E7298A") ) +
tm_legend(text.size = 0.75) +
tm_layout("", legend.position = c("left", "bottom")) +
tm_borders("grey60") +
tm_layout(frame = F) +
tm_text("savivald", size = .65, col = "black", auto.placement = T)
Я написал пост в блоге, в котором кратко описывается техника. https://www.jla -data.net / eng / Adjusting-Liming-Box-of-a-tmap-map /
Ваш пример не совсем воспроизводим, но это изображение (создающее больше места для "большого жирного заголовка" на карте Северной Каролины) должно дать вам представление.
![enter image description here](https://i.stack.imgur.com/DJ8vR.png)