Dear friends - I find it difficult to get formatting right when
expressions are made on several lines. Sorry not to find the right
documentation.
R version 3.2.1 Windows 7
(pHi <- seq(1,8))
#This gets formatted well but I want subscript for 2 in pCO2
plot(pHi,type="s",axes=FALSE,xlab="",lwd=4,
main=paste("Theoretical experiment using SID = 0.13 M\n"," ATOT =
0.2 M,
pKa = 6.8, and pCO[2] = 40"))
#but this gets a very unhelpful format
plot(pHi,type="s",axes=FALSE,xlab="",lwd=4,
main=expression(paste("Theoretical experiment using ", pCO[2], "=
40,
SID = 0.13 M\n"," ATOT = 0.2 M, and pKa = 6.8",
)))
All best wishes
Troels
Aalborg
Denmark
On 26/02/2016 7:08 AM, Troels Ring wrote:> (pHi <- seq(1,8)) > #This gets formatted well but I want subscript for 2 in pCO2 > plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, > main=paste("Theoretical experiment using SID = 0.13 M\n"," ATOT = 0.2 M, > pKa = 6.8, and pCO[2] = 40")) > > #but this gets a very unhelpful format > > plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, > main=expression(paste("Theoretical experiment using ", pCO[2], "= 40, > SID = 0.13 M\n"," ATOT = 0.2 M, and pKa = 6.8", > )))As the docs say, control chars like \n are ignored in plotmath. You can probably put something together using atop(), though the resizing will be problematic. I'd suggest that you just use mtext() to write each of the three lines of output: plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, main="") mtext(expression(paste("Theoretical experiment using ", pCO[2], "= 40")), 3, line = 3) mtext("SID = 0.13 M", 3, line = 2) mtext("ATOT = 0.2 M and pKa = 6.8", 3, line = 1) You can move things around by changing the "line = " args, and add cex if you want bigger text, etc. Duncan Murdoch
On 26/02/2016 7:37 AM, Duncan Murdoch wrote:> On 26/02/2016 7:08 AM, Troels Ring wrote: >> (pHi <- seq(1,8)) >> #This gets formatted well but I want subscript for 2 in pCO2 >> plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, >> main=paste("Theoretical experiment using SID = 0.13 M\n"," ATOT = 0.2 M, >> pKa = 6.8, and pCO[2] = 40")) >> >> #but this gets a very unhelpful format >> >> plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, >> main=expression(paste("Theoretical experiment using ", pCO[2], "= 40, >> SID = 0.13 M\n"," ATOT = 0.2 M, and pKa = 6.8", >> ))) > > As the docs say, control chars like \n are ignored in plotmath. You can > probably put something together using atop(), though the resizing will > be problematic. I'd suggest that you just use mtext() to write each of > the three lines of output: > > plot(pHi,type="s",axes=FALSE,xlab="",lwd=4, > main="") > mtext(expression(paste("Theoretical experiment using ", pCO[2], "> 40")), 3, line = 3) > mtext("SID = 0.13 M", 3, line = 2) > mtext("ATOT = 0.2 M and pKa = 6.8", 3, line = 1) > > You can move things around by changing the "line = " args, and add cex > if you want bigger text, etc. >One thing I forgot to add: if you want to match the look to other plots, see ?title. The default settings for the main title are par(c("font.main", "cex.main", "col.main")). Duncan Murdoch