web-dev-qa-db-fra.com

Saut de ligne dans l'expression ()?

J'ai l'histogramme suivant dans R:

hist(alpha,cex.main=2,cex.axis=1.2,cex.lab=1.2,
main=expression(paste("Histogram of ",hat(mu), ", Bootstrap samples, Allianz")))

Le titre est trop long, je veux donc un saut de ligne. Selon cela thread j'ai essayé

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")))

ou

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")))

Mais les deux ne fonctionnent pas, comment puis-je obtenir un saut de ligne dans paste ()?

38
Jen Bohold

Vous pouvez facilement utiliser des sauts de ligne dans paste régulier, mais il s'agit de plotmath paste (en fait une fonction différente également sans argument 'sep') et le (long) ?plotmath la page vous indique spécifiquement que cela ne peut pas être fait. Alors, quelle est la solution? L'utilisation de la fonction plotmath atop est une option simple:

expression(atop("Histogram of "*hat(mu), Bootstrap~samples*','~Allianz))

Cela rompra la virgule et centrera les expressions du tracé. Des options plus compliquées sont disponibles.

Cela illustre le traçage vers un fichier graphique. Ironiquement, le premier effort m'a donné un affichage qui a eu votre problème avec le `` chapeau '' (ces circonflexes?) Étant coupé et cela montre comment augmenter les marges. La marge supérieure est probablement le troisième nombre, donc c (3,3,8,0) pourrait vous convenir mieux:

 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()
38
42-

Vous allez devoir utiliser autre chose. On m'a demandé d'utiliser mtext et bquote quand j'étais coincé sur un problème similaire =.

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 )

Dans l'exemple ci-dessus, title ( grâce à @hadley ) peut être simplifié en

title <- as.list(expression(paste("Histogram of " , hat(mu)), "Bootstrap samples, Allianz"))

enter image description here

19
Simon O'Hanlon