Deepayan Sarkar wrote: > On 12/19/07, Dylan Beaudette <[EMAIL PROTECTED]> wrote: > >> On Wednesday 19 December 2007, Max wrote: >> >>> Hi Everyone, >>> >>> I've got a question about data representation. I have some psychometric >>> data with 5 scores for 15 different groups. I've been asked to show >>> some kind of mean plots. The data below is the mean and SD for a given >>> group, unfortunately my employer doesn't want me posting full datasets. >>> >>> :( >>> >>> The groups V,W,X,Y,Z are divided into Bottom, (B), Middle (M) and Top >>> (T). An example of my data is shown below. >>> >>> Score 1 >>> Mean SD >>> B M T B M T >>> V 86.9 13.0 88.8 16.9 2.0 10.5 >>> W 16.1 96.1 17.7 2.2 4.6 1.7 >>> X 50.7 61.1 74.7 4.7 3.7 7.6 >>> Y 68.5 99.7 37.6 6.0 8.0 2.3 >>> Z 92.7 22.3 69.4 6.5 1.2 2.2 >>> >>> What I did before was a standard mean plot: >>> >>> plotMeans(w$score1, w$Factor, >>> error.bars="sd",xlab="Factor",ylab="Score",main="Group W Score 1 Plot") >>> >>> However, with 15 groups and 5 scores this turns into 75 individual >>> graphs. Is there a way to layer mean plots? Or show several mean plots >>> in the Same graph? Any ideas or suggestions would be great. >>> >>> thanks, >>> >>> -Max >>> >>> >> How about a lattice plot using panels ? plot the distribution of each score >> (box and whisker style), using a panel for each group? >> >> a <- rnorm(100) >> b <- rnorm(100) >> c <- rnorm(100) >> d <- rnorm(100) >> >> library(lattice) >> new <- make.groups(a,b,c,d >> >> new$grp <- rep(gl(5,20, labels=c('A','B','C','D','E')), 4) >> >> bwplot(data ~ which | grp, data=new) >> >> Not quite means, but close! >> > > And > > demo("intervals", package = "lattice") > > shows you how to incorporate confidence intervals. > > -Deepayan > >
Perhaps as long as you're learning a new plotting system, you might also check out whether ggplot2 might be an option. I did a quick and dirty version (which I'm sure Hadley can improve and also remind me how to get rid of the legend that shows the "3" that I set the size to). Assuming your data is re-shaped, so it comes out something like mine in the artificial example below, then it's a two-liner in ggplot: maxdat.df <- data.frame ( score1 = rnorm(9, mean = rep(c(10,20,30), each = 3), sd = 1 ) , SD = runif(9) * 2 + .5, Group = factor ( rep ( c("V", "W", "X"), each = 3 ) ), subGroup = rep( c("B","M","T"), 3) ) maxdat.df library(ggplot2) ggp <- ggplot ( maxdat.df, aes (y = score1, x = interaction(Group , subGroup), min = score1 - SD, max = score1 + SD, size = 3) ) ggp + geom_pointrange() + coord_flip() Eric ______________________________________________ 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.