Plot main title in two lines

Giuseppe picture Giuseppe · Jan 3, 2013 · Viewed 12.4k times · Source

I would like to have the title for the plot in two lines, but this does not work, why? and how can I make it work?

CVal<-1 
SumEpsVal<-2 
plot(1:10, main=bquote(paste("C=", .(CVal), " \n ", sum(xi), "=", .(SumEpsVal) )))

This here works:

plot(1:10, main=paste("C=1", "\n", "SumXi=2"))

I guess bquote makes something wrong... (look up ?bquote) I tried to change environment in bqoute (the where-argument) but I don't know which environment to take.

BTW:

plot(1:10, main=bquote(paste("C=", .(CVal), "bla \n ", sum(xi), "=", .(SumEpsVal) )))

makes something crazy with the "bla".

Answer

Theodore Lytras picture Theodore Lytras · Jan 3, 2013

Personally I would use mtext as already suggested. But if you really want it to be a one-liner, you can "cheat" bquote by using atop:

plot(1:10, main=
  bquote(atop(paste("C=",.(CVal)), paste(sum(xi),"=",.(SumEpsVal)))))

It even aligns both lines neatly to the center.