Dear R-helpers,

I'm trying to combine two box plots having two dependent variables:

var1- Orange.area and

var2- Iridescent.area;

two independent categorical factors (each has two levels - 'High' & 'Low'):

fact1- Quantity

fact2- Quality


the data frame (df) is:

   Quantity Quality Orange.area Iridescent.area
1      High    High       8.240          12.550
2      High     Low      12.690          10.470
3      High    High      10.340           4.350
4      High     Low      11.430           8.890
5      High    High       6.203           6.809
6       Low     Low       1.750           7.040
7       Low    High       6.060           4.930
8       Low     Low       5.630           5.980
9       Low    High       6.540           5.360
10      Low     Low       8.458           4.710



I tried to plot them with the following codes:

library(ggplot2)
library(gridExtra)
## 1st plot
p1 <- qplot(as.factor(Quantity), Orange.area, data=df, geom = "boxplot",
fill= Quality)
p1 <-p1 + geom_boxplot() +scale_fill_manual(values = c("dark grey",
"white"), legend="FALSE")
p1 <- p1 + labs(x="Quantity", y="Orange area")
p1 <- p1 + stat_summary(fun.y = mean, geom = "point", color = "black",
aes(group=Quality))
p1 <- p1 + stat_summary(fun.y = mean, geom = "line", aes(group = Quality))
p1 <- p1  +theme_bw()+
  theme(axis.line = element_line(colour = "black"),
        strip.text.x = element_blank(),# remove top level title (high and
low)
        strip.background = element_blank(),# remove top level background
        panel.grid.major = element_blank(),# remove grid line within the
plot
        panel.grid.minor = element_blank(),
        panel.border = element_blank())
## 2nd plot
p2 <- qplot(as.factor(Quantity), Iridescent.area, data=df, geom =
"boxplot", fill= Quality)
p2 <-p2 + geom_boxplot() +scale_fill_manual(values = c("dark grey",
"white"))
p2 <- p2 + labs(x="Quantity", y="Iridescent area")
p2 <- p2 + stat_summary(fun.y = mean, geom = "point", color = "black",
aes(group=Quality))
p2 <- p2 + stat_summary(fun.y = mean, geom = "line", aes(group = Quality))
p2 <- p2  +
  theme_bw()+
  theme(axis.line = element_line(colour = "black"),
        strip.text.x = element_blank(),# remove top level title (high and
low)
        strip.background = element_blank(),# remove top level background
        panel.grid.major = element_blank(),# remove grid line within the
plot
        panel.grid.minor = element_blank(),
        panel.border = element_blank())
## combining two plots as one plot
sidebysideplot <- grid.arrange(p1, p2, ncol=2)

and got the plot which sueezed the 2nd plot having legend on its middle of
the right side.

But I want to have the legend on the top right corner with any change of
the 2nd plot (both plots should be the same size).

Is there any help? Any effort will be appreciated...

Cheers,

Moshi
-- 
MD. MOSHIUR RAHMAN
PhD Candidate
School of Animal Biology/Zoology (M092)
University of Western Australia
35 Stirling Hwy, Crawley, WA, 6009
Australia.
Mob.: 061-425205507

	[[alternative HTML version deleted]]

