Изменение цвета фона для текстовой аннотации для повышения контрастности и видимости

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

ggplot() + 
  geom_hline(yintercept=0) + 
  annotate("text",x=0,y=0,label="Here is a line")

введите описание изображения здесь


person Andy Stein    schedule 20.09.2016    source источник
comment
Вы можете использовать annotate("rect",xmin=?,xmax=?, ymin=?, ymax=?, fill="yellow"), и вы должны использовать эту строку перед текстовой аннотацией, однако geom_label намного чище   -  person Ibo    schedule 19.04.2018


Ответы (2)


Вместо этого попробуйте geom_label:

ggplot() + 
  geom_hline(yintercept = 0) + 
  labs(x = "", y = "") +
  geom_label(aes(x = 0, y = 0, label = "Here is a line"), fill = "green")

введите описание изображения здесь

person Martin Schmelzer    schedule 20.09.2016
comment
ВНИМАНИЕ, что geom_label должно быть указано после geom_hline, иначе линия будет видна поверх метки. - person Ibo; 19.04.2018
comment
Обратите внимание, что inannotate(geom = "label", x = 0, y =0, color = "red", fill = "green") аргумент color будет применяться как к тексту, так и к рамке вокруг него (насколько я могу судить). - person PatrickT; 27.11.2018
comment
Для тех, кто использует geom_label, обратите внимание на снижение производительности при отрисовке каждой строки. github.com/tidyverse/ggplot2/issues/2266. Обнаружил это с трудом, так как все мои заговоры остановились - person sam; 08.03.2019