尝试这个。我为很长的标题写了这个,但它适用于任何长字符串。您仍然需要计算实例的线长。
# splits title of plot if to long
splittitle=function(title,linelength=40)
{
spltitle<-strsplit(title,' ')
splt<-as.data.frame(spltitle)
title2<-NULL
title3<-NULL
titlelength<-round(nchar(title)/round(nchar(title)/linelength))
dimsplt<-dim(splt)
n=1
doonce2=0
for(m in 1:round(nchar(title)/linelength)){
doonce=0
doonce2=0
for(l in n:dimsplt[1]){
if(doonce==0){title2<-title3}
title2=paste(title2,splt[l,],sep=' ')
if(doonce2==0){if(nchar(title2)>=(titlelength*m)){title3=paste(title2,'\n',sep='')
n<-(l+1)
doonce2=1}
}
doonce=1
}
}
title2
}
lab <- "A really really long string!A really really long string!A really really long string!A really really long string!A really really long string!A really really long string!A really really long string!A really really long string!"
lab2<-splittitle(lab)
cat(lab)
cat(lab2)
library('ggplot2')
1 份原件
dat <- data.frame(grp = paste(1:6,lab2),x=1:6,y=runif(6))
ggplot(dat,aes(x=x,y=y,colour=grp)) + geom_point() +
opts(legend.position="bottom",legend.direction="horizontal")
2 使用拆分标题
dat <- data.frame(grp = paste(1:6,lab2),x=1:6,y=runif(6))
ggplot(dat,aes(x=x,y=y,colour=grp)) + geom_point() +
opts(legend.position="bottom",legend.direction="horizontal")