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 backslas
Just for an update as has been mentioned in the comments opts
is deprecated. You need to use labs
and you could do:
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"
Option 1: Using str_wrap
option from the stringr
package and setting your ideal width:
library(stringr)
ggplot(data = cars, aes(x = speed, y = dist)) +
geom_smooth() +
labs(title = str_wrap(my_title, 60))
Option 2: Using the function provided by @Richie https://stackoverflow.com/a/3935429/4767610 like this:
wrapper <- function(x, ...)
{
paste(strwrap(x, ...), collapse = "\n")
}
ggplot(data = cars, aes(x = speed, y = dist)) +
geom_smooth() +
labs(title = wrapper(my_title, 60))
Option 3: Using the manual option (granted, this is what the OP wanted to avoid but it might be handy)
my_title_manual = "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 \n the backslash n, but at the moment it does not"
ggplot(data = cars, aes(x = speed, y = dist)) +
geom_smooth() +
labs(title = my_title_manual)
Option 4: Reduce the text size of the title (as in the accepted answer https://stackoverflow.com/a/2633773/4767610)
ggplot(data = cars, aes(x = speed, y = dist)) +
geom_smooth() +
labs(title = my_title) +
theme(plot.title = element_text(size = 10))