[R] , how to express bar(zeta) in main title in boxplot

Peter Ehlers ehlers at ucalgary.ca
Thu Jul 22 23:01:10 CEST 2010


On 2010-07-22 14:40, David Winsemius wrote:
>
> On Jul 22, 2010, at 4:24 PM, Peter Ehlers wrote:
>
>> On 2010-07-22 11:44, Marcus Liu wrote:
>>> Hi everyone, I am plotting a boxplot with main title as main =
>>> bquote(paste(.(ts.ind[s]), ": ", bar(zeta), " Boxplot from 2001 to
>>> 2009", sep = "")) but it doesn't work. The program said they cannot
>>> find the function "bar". Does anyone know how to do it correctly?
>>> Thanks.
>>>
>>
>> A reproducible example with the exact error message would
>> be good. Anyway, it seems pretty clear what you want and
>> one solution is to _not_ use 'main='. For base graphics,
>> I usually prefer to add titles with the title() function
>> which will work here.
>>
>> a <- pi
>> boxplot(rnorm(200))
>> title(bquote(paste(.(a), ": ", bar(zeta),
>> " Boxplot from 2001 to 2009", sep = "")))
>>
>> It seems that setting main=<...> where <...> contains
>> bquote() works with plot(), but not with boxplot().
>
> The help page for boxplot does not document a "main" argument, nor is it
> in the argument list for boxplot.default or its bxp function. The
> documentation for the "..." argument does not suggest, to me anyway,
> that main would passed on to other graphical functions.
>

Well, that's not quite so. From ?bxp:

".... and main, cex.main, col.main, sub, cex.sub, col.sub, xlab,
ylab, cex.lab, and col.lab are passed to title"

# To wit:
y <- rnorm(200)
g <- gl(2,100)
boxplot(y ~ g, main="My title")

# But I wasn't right, either:
a <- pi
boxplot(y ~ g, main=paste("hello", bquote(.(a)), "goodbye"))
boxplot(y ~ g, main=expression("hello"~~bar(zeta)~~"goodbye"))

I do usually prefer to use main="" and then supply the title
separately. But I'll wager that either Gabor or Uwe or ...
will make main= work for the OP.

   -Peter Ehlers



More information about the R-help mailing list