Разрыв строки в выражении()?
У меня есть следующая гистограмма в R:
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), ", Bootstrap samples, Allianz")))
Титлл слишком длинный, поэтому я хочу разбить строку. В соответствии с этой нитью я пробовал
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), ",cat("\n") Bootstrap samples, Allianz")))
или
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), cat("\n"),", Bootstrap samples, Allianz")))
Но оба не работают, как я могу получить разрыв строки в paste()?
Ответы
Ответ 1
Вы можете легко использовать разрывы строк в регулярном paste
, но это plotmath paste
(фактически другая функция также без аргумента "sep" ), а страница (long) ?plotmath
специально сообщает вам, что она не может быть сделанный. Итак, что такое обход? Использование функции plotmath atop
является одной простой опцией:
expression(atop("Histogram of "*hat(mu), Bootstrap~samples*','~Allianz))
Это сломается в запятой и центрирует выражения plotmath. Доступны более сложные варианты.
Это иллюстрирует построение графика в графическом файле. По иронии судьбы, первое усилие дало мне дисплей, у которого была ваша проблема с "шляпой" (эти обводки?), Которая была отрезана, и это показывает, как увеличить поля. Верхнее поле, вероятно, является третьим номером, поэтому c (3,3,8,0) может подойти вам лучше:
pdf("test.pdf") ; par(mar=c(10,10,10,10))
hist(1:10,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(atop("Histogram of "*hat(mu),
Bootstrap~samples * ',' ~Allianz)))
dev.off() # don't need to restore; this 'par' only applies to pdf()
Ответ 2
Вам нужно будет использовать что-то еще. Мне было предложено использовать mtext
и bquote
, когда я застрял в подобной проблеме.
alpha = rnorm(1e3)
hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,main=NULL )
title <- list( bquote( paste( "Histogram of " , hat(mu) ) ) ,
bquote( paste( "Bootstrap samples, Allianz" ) ) )
mtext(do.call(expression, title ),side=3, line = c(1,-1) , cex = 2 )
В приведенном выше примере title
(благодаря @hadley) можно упростить до
title <- as.list(expression(paste("Histogram of " , hat(mu)), "Bootstrap samples, Allianz"))
![enter image description here]()