[R] boxplot question
Marc R. Feldesman
feldesmanm at pdx.edu
Fri Aug 3 04:13:30 CEST 2001
At 01:39 PM 7/27/01, Thomas Lumley wrote:
>On Fri, 27 Jul 2001, Marc Feldesman wrote:
>
>> I'm graphing a series of boxplots of grouped data inside a function that
>> passes the data.frame, the names vector, and a title vector.
>>
>> Because both the data subset changes with each successive pass through the
>> function, occasionally the names vector turns up with only one group to
>> plot. This is an expected result. However, when the names argument in
>> boxplot has only a single name, it doesn't put in on the
>> boxplot. (Actually, this is true whether the names argument is present or
>> not. If the call to boxplot is in formula form (e.g. variable ~ group),
>> the plot doesn't name the group if there is only one group.)
>
>Yes. In order to get around this you need to modify the bxp() function
>that does the actual plotting.
>
>
>My recommended change is to add a show.names argument:
>
> function (z, notch = FALSE, width = NULL, varwidth = FALSE, notch.frac =
> 0.5, boxwex = 0.8, border = par("fg"), col = NULL, log = "", pars =
> NULL, frame.plot = axes, horizontal = FALSE, add = FALSE, at = NULL,
> show.names=NULL, ...)
>
>and then near the end of the function replace the if(axes) conditional
>with
>
> if (axes) {
> ax.pars <- pars[names(pars) %in% c("xaxt", "yaxt", "las")]
> if(is.null(show.names)) show.names<-(n>1)
> if (show.names)
> do.call("axis", c(list(side = 1 + horizontal, at = at,
> labels = z$names), ax.pars))
> do.call("axis", c(list(side = 2 - horizontal), ax.pars))
> }
>
>
>Now the standard behaviour is the same but you can override it with
>
> temp<-boxplot(y~g,plot=FALSE)
> bxp(temp,show.names=TRUE)
>
>or if you have multiple groups but don't want names for some strange
>reason
> bxp(temp,show.names=FALSE)
>
This is a handy solution that works well as long as one remembers to put
parameters usually included in the boxplot() call in the call to bxp().
Any chance of making this a part of the next release of R? It doesn't seem
like it should/would break existing code.
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list