geom_label не может обработать прозрачность текста - PullRequest
1 голос
/ 20 марта 2019

Я хочу построить данные, используя geom_label, чтобы нарисовать текст внутри прямоугольников.Я не могу найти, как добавить прозрачность (альфа) к моему тексту.На самом деле прозрачность кажется применимой только к цвету заливки:

ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars), alpha=cyl))+ geom_label(fill="blue")
ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars), alpha=cyl)) + geom_text()

Когда я использую geom_text, альфа-параметры работают как положено:

enter image description here Знаете ли вы, как сделать текст внутри метки прозрачным при использовании geom_label?Спасибо,

1 Ответ

2 голосов
/ 20 марта 2019

Используя этот жестокий трюк, вы можете заставить его работать.Просто переместите 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)))

enter image description here

Редактирование @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потому что я не могу получить шрифт с символами фиксированной ширины ")

...