Использование ggplot2 для печати текста с '\ n' в них - PullRequest
1 голос
/ 25 мая 2020

Я пытаюсь создать изображение в ggplot с geom_text, но текст перекрывает сам себя. Я подумал, что могу быть умным и добавить \n в свой CSV-файл, откуда я беру данные, но это не сработало, на самом деле стало еще хуже. Как мне нанести многострочный текст в geom_text? Я не хочу использовать ggrepl, поскольку это противоречит цели моей спецификации c построения для каждого текста. Кроме того, как мне удалить лишнее \ на этикетках? Они читаются из файла csv.

xx <- seq(1,5,1)
yy <- seq(1,5,1)
labelss <-c ('My\\n1 Label','My\\n2 Label','My\\n3 Label','My\\n4 Label','My\\n5 Label')
df<-data.frame(xx,yy,labelss)
ggplot()+
  geom_tile(aes(xx, yy), df) +
  geom_text(aes(xx, yy, label = labelss), color ='white', df, size=3)

1 Ответ

3 голосов
/ 25 мая 2020

Вам нужно дважды экранировать обратную косую черту в вызове gsub. Как говорит @ r2evans, у второй метки отсутствовал n, поэтому я добавил его в это представление:

library(ggplot2)

xx <- seq(1,5,1)
yy <- seq(1,5,1)
labelss <-c ('My\\n1 Label','My\\n2 Label','My\\n3 Label','My\\n4 Label','My\\n5 Label')
df<-data.frame(xx,yy,labelss)
ggplot()+
  geom_tile(aes(xx, yy), df) +
  geom_text(aes(xx, yy, label = gsub("\\\\n", "\n", labelss)), color ='white', df, size=3)

Создано 2020-05- 25 с помощью пакета REPEX (v0.3.0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...