R: ggplot2, могу ли я задать заголовок сюжета для обертывания и сжимать текст, чтобы он соответствовал сюжету?
library(ggplot2)
my_title = "This is a really long title of a plot that I want to nicely wrap \n and fit onto the plot without having to manually add the backslash n, but at the moment it does not"
r <- ggplot(data = cars, aes(x = speed, y = dist))
r + geom_smooth() + #(left)
opts(title = my_title)
Могу ли я задать заголовок сюжета для обертывания и сжимать текст, чтобы он соответствовал сюжету?
Ответы
Ответ 1
Я не думаю, что есть опция переноса текста в ggplot2
(я всегда просто вставлял \n вручную). Однако вы можете уменьшить размер текста заголовка, изменив свой код следующим образом:
title.size<-10
r + geom_smooth() + opts(title = my_title,plot.title=theme_text(size=title.size))
Фактически, вы все аспекты текста с помощью функции theme_text
.
Ответ 2
Вам нужно вручную выбрать количество символов для переноса, но комбинация strwrap
и paste
будет делать то, что вы хотите.
wrapper <- function(x, ...)
{
paste(strwrap(x, ...), collapse = "\n")
}
my_title <- "This is a really long title of a plot that I want to nicely wrap and fit onto the plot without having to manually add the backslash n, but at the moment it does not"
r +
geom_smooth() +
opts(title = wrapper(my_title, width = 20))