No sé, por lo que he recurrido a una solución usando strwidth()
, que calcula el ancho del texto en gráficos base.
title <- "This is a really excessively wide title for a plot, especially since it probably won't fit"
Uso par("din") to get the width of the device, and
strwidth() `para calcular el tamaño del texto:
par("din")[1]
[1] 8.819444
strwidth(title, units="inches")
[1] 11.47222
utilizarlo en una función y la trama:
wrapTitle <- function(x, width=par("din")[1]){
xx <- strwrap(x, width=0.8 * nchar(x) * width/strwidth(x, units="inches"))
paste(xx, collapse="\n")
}
wrapTitle(title)
[1] "This is a really excessively wide title for a plot, especially since it\nprobably won't fit, meaning we somehow have to wrap it"
La trama:
ggplot(mtcars, aes(wt, mpg)) + geom_point() + opts(title=wrapTitle(title))
Si desea guardar la trama en un archivo, entonces se puede sustituir par("din")
con las dimensiones reales de la trama guardadas.
buena pregunta: un ejemplo * reproducible podría acelerar las respuestas ... –
Difícil publicar una respuesta sin datos. Pero AFAIK no hay opción en 'ggplot2', pero puede escribir una función para insertar' \ n' después de cierta longitud. –