Hi:
The easiest fix is to convert Day to a factor. Making a couple modifications
to your code, I got the following:
CorbulaMR3$Day <- factor(CorbulaMR3$Day)
p=ggplot(CorbulaMR3,aes(factor(Site),VO2))
p + geom_boxplot(aes(fill=factor(Day)),
position = position_dodge(width = 0.8)) +
scale_fill_manual('Day', breaks = levels(CorbulaMR3$Day),
values = c('grey','black'),
labels = c('Day 1', 'Day 2')) +
xlab('Sampling Site') + ylab('Metabolic Rate') +
opts(title="Sampling")
I put in the position_dodge() statement because I like a little separation
between the box edges, but it's an optional feature.
HTH,
Dennis
On Fri, Dec 17, 2010 at 1:24 PM, Nathan Miller
<natemiller77@gmail.com>wrote:
> Hello,
>
> I am trying to create a series of boxplots with the following data, three
> columns, "Day" (1 or 2), "Site" (1-4), and
"VO2" (some values missing for
> some Sites or Days)
>
> > CorbulaMR3
> Day Site VO2
> 1 1 1 88.92223
> 2 1 1 86.17873
> 3 1 1 61.08950
> 4 1 1 190.47922
> 5 1 1 98.65930
> 6 1 1 121.03549
> 7 1 1 67.88404
> 8 1 1 126.29497
> 9 1 1 109.47173
> 10 1 1 113.81467
> 11 2 1 78.09781
> 12 2 1 43.97586
> 13 2 1 63.17635
> 14 2 1 20.20365
> 15 2 1 95.25985
> 16 2 1 47.32347
> 17 2 1 30.43341
> 18 2 1 44.19395
> 19 2 1 NA
> 20 2 1 NA
> 21 1 2 33.80003
> 22 1 2 26.00926
> 23 1 2 39.80552
> 24 1 2 36.59985
> 25 1 2 48.67881
> 26 1 2 36.94679
> 27 1 2 33.72825
> 28 1 2 36.44749
> 29 1 2 14.97611
> 30 1 2 26.97976
> 31 2 2 31.36923
> 32 2 2 36.02215
> 33 2 2 40.00660
> 34 2 2 36.73098
> 35 2 2 30.90854
> 36 2 2 48.77643
> 37 2 2 24.68537
> 38 2 2 NA
> 39 2 2 NA
> 40 2 2 NA
> 41 1 3 48.09866
> 42 1 3 23.80070
> 43 1 3 36.72271
> 44 1 3 32.32115
> 45 1 3 29.50701
> 46 1 3 50.68163
> 47 1 3 30.04234
> 48 1 3 30.90461
> 49 1 3 45.39888
> 50 1 3 32.61571
> 51 2 3 20.69708
> 52 2 3 21.17658
> 53 2 3 32.44907
> 54 2 3 34.04048
> 55 2 3 45.97381
> 56 2 3 40.34278
> 57 2 3 21.67128
> 58 2 3 22.45179
> 59 2 3 NA
> 60 2 3 NA
> 61 1 4 39.35840
> 62 1 4 29.32294
> 63 1 4 49.28409
> 64 1 4 50.75344
> 65 1 4 43.53663
> 66 1 4 33.76173
> 67 1 4 36.40901
> 68 1 4 36.16992
> 69 1 4 49.99144
> 70 1 4 NA
> 71 2 4 28.64131
> 72 2 4 22.69317
> 73 2 4 42.31203
> 74 2 4 31.17968
> 75 2 4 59.36813
> 76 2 4 44.53866
> 77 2 4 45.96834
> 78 2 4 33.16604
> 79 2 4 35.57714
> 80 2 4 35.46922
>
> I have the following code which works well except that in the legend the
> fill colour for Day 1 and Day 2 is left blank. Instead the little boxes
> next
> to the labels (Day 1, Day 2) are both unfilled (white). The boxplots are
> filled properly, but without the fill colour in the legend its difficult
> decipher the plot
>
> p=ggplot(CorbulaMR3,aes(factor(Site),VO2))
> p+geom_boxplot(aes(fill=factor(Day)))+scale_fill_manual('Day',
breaks > c('Day 1', 'Day 2'),
> + values = c('grey','black'),
> + labels = c('Day 1', 'Day 2'))+xlab('Sampling
Site')+ylab('Metabolic
> Rate')+opts(title="Sampling")
>
> I've played around and if I don't use the scale_fill_manual() and
instead
> simply plot using
>
> p+geom_boxplot(aes(fill=factor(Day)))
>
> the legend boxes are filled, but obviously plot/legend is not labeled in
> the
> manner I would like and I don't much care for the default colours.
>
> Any thoughts on why when I use the scale_fill_manual() the fill colours are
> not shown in the legend? I'm pretty sure its something simple.
>
> I'm working on a Mac with R 2.12.0
>
> Thank you,
>
> Nate
>
> [[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.
>
[[alternative HTML version deleted]]