Hi:
Here are a couple of ways:

(1) Base graphics: add argument axes = FALSE to both plots, then add axes

boxplot(len ~ dose, data = subset(ToothGrowth, supp == 'VC'),
        boxwex = 0.25, at = 1:3 - 0.2,
        col = "yellow",
        main = "Guinea Pigs' Tooth Growth",
        axes = FALSE,
        xlab = "Vitamin C dose mg",
        ylab = "Tooth length",
        xlim = c(0.5, 3.5), ylim = c(0, 35), yaxs = "i")
boxplot(len ~ dose, data = subset(ToothGrowth, supp == 'OJ'),
        add = TRUE,
        boxwex = 0.25, at = 1:3 + 0.2,
        axes = FALSE,
        col = "orange")
axis(1, at = 1:3, labels = c(0.5, 1, 2))
axis(2)
legend(2, 9, c("Ascorbic acid", "Orange juice"),
       fill = c("yellow", "orange"))
box()


(2) ggplot2  (just for fun :)

library(ggplot2)
g <- ggplot(ToothGrowth, aes(x = factor(dose), y = len))
g + geom_boxplot(aes(fill = supp), position = position_dodge(width = 0.9)) +
    scale_fill_manual('', breaks = c('OJ', 'VC'),
                          values = c('orange', 'yellow'),
                          labels = c('Orange juice', 'Ascorbic acid')) +
    theme_bw() +
    opts(legend.position = c(0.8, 0.2), legend.text = theme_text(size = 12))
+
    opts(panel.grid.major = theme_blank()) +
    xlab('Vitamin C dose (mg)') + ylab('Tooth length') +
    opts(title = "Guinea pigs' tooth growth") +
    opts(plot.title = theme_text(size = 16))

HTH,
Dennis


On Sat, Sep 25, 2010 at 11:13 PM, Tim Clark <mudiver1...@yahoo.com> wrote:

> Dear List,
>
> I am creating a boxplot with two subsets, very similar to the example by
> Roger
> Bivand at ?boxplot (reproduced below).  I am trying to change the labels on
> the
> x-axis to have one number to cover both subsets.  I can do this in other
> plots
> by using axis=FALSE followed by a separate axis() command.  I have also
> tried
> variations in the names= argument but can't get it to work.  Ideally I
> would
> like tickmarks on either side of each factor with the number for the level
> centered between the two tick marks.  Any suggestions?
>
> Thanks,
>  Tim
>
> Example:
>
> boxplot(len ~ dose, data = ToothGrowth,
>         boxwex = 0.25, at = 1:3 - 0.2,
>         subset = supp == "VC", col = "yellow",
>         main = "Guinea Pigs' Tooth Growth",
>         xlab = "Vitamin C dose mg",
>         ylab = "tooth length",
>         xlim = c(0.5, 3.5), ylim = c(0, 35), yaxs = "i")
> boxplot(len ~ dose, data = ToothGrowth, add = TRUE,
>         boxwex = 0.25, at = 1:3 + 0.2,
>         subset = supp == "OJ", col = "orange")
> legend(2, 9, c("Ascorbic acid", "Orange juice"),
>        fill = c("yellow", "orange"))
>
>
>  Tim Clark
>
> Marine Ecologist
> National Park of American Samoa
>
>
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to