Используя этот жестокий трюк, вы можете заставить его работать.Просто переместите label
внутрь geom_text
и создайте пустую длинную строку для geom_label
, хотя это вряд ли "воспроизводимое" решение.
library(ggplot2)
ggplot(mtcars, aes(wt, mpg, alpha=cyl)) +
geom_label(label=" ", fill="blue") +
geom_text(aes(label = rownames(mtcars)))
Редактирование @agenis: мы могли бы сначала вычислить длину пробелов для каждой метки, поэтому мы адаптируем поле к тексту
ggplot(mtcars %>% mutate(blank_label = strrep(" ", nchar(rownames(.))*2)), aes(wt, mpg, alpha=cyl)) +
geom_label(aes(label=blank_label), fill="blue") +
geom_text(aes(label = rownames(mtcars)))
(*2
потому что я не могу получить шрифт с символами фиксированной ширины ")