R 换行图例文本以适合打印窗口

R 换行图例文本以适合打印窗口,r,ggplot2,R,Ggplot2,我正在使用ggplot绘制一些数据,我注意到图例文本非常长,不适合窗口 + opts(legend.position = 'bottom', legend.direction = 'horizontal', size=0.1) + guides(colour = guide_legend(nrow = 3), size=1) ggplot中是否有一个选项可以包装图例文本以适应窗口。据我所知,这还不算,因此我采用了一种解决方法,使用strwidth(),它可以计算基本图形中文本的宽度

我正在使用ggplot绘制一些数据,我注意到图例文本非常长,不适合窗口

+ opts(legend.position = 'bottom', legend.direction = 'horizontal', size=0.1)  +
    guides(colour = guide_legend(nrow = 3), size=1) 

ggplot中是否有一个选项可以包装图例文本以适应窗口。

据我所知,这还不算,因此我采用了一种解决方法,使用
strwidth()
,它可以计算基本图形中文本的宽度

+ opts(legend.position = 'bottom', legend.direction = 'horizontal', size=0.1)  +
    guides(colour = guide_legend(nrow = 3), size=1) 
title <- "This is a really excessively wide title for a plot, especially since it probably won't fit"
在函数和绘图中使用它:

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"



如果要将绘图保存到文件,则可以用实际保存的绘图尺寸替换
par(“din”)

好问题:一个可复制的示例可能会加快答案的速度…很难发布没有数据的答案。但是,
ggplot2
中没有选项,但是您可以编写一个函数,在一段时间后插入
\n
。我喜欢您的方法,但是据我所知,OP希望包装图例文本,而不是标题或图例标题。有没有办法知道图例文本所在的grob的尺寸?
ggplot(mtcars, aes(wt, mpg)) + geom_point() + opts(title=wrapTitle(title))