You can do pretty well without ggplot actually. boxplot(Time~paste(Incidents,Months),data=DF,border=c('grey20','red'))
On Sat, May 28, 2011 at 2:55 AM, steven mosher <mosherste...@gmail.com> wrote: > Thanks, > > ggplot is on my list of things to learn before Hadley comes here to the > bay area > to give a session on interactive graphics in R > > On Fri, May 27, 2011 at 10:29 PM, Joshua Wiley <jwiley.ps...@gmail.com>wrote: > >> Hi Steven, >> >> This is not, strictly speaking, the answer to your question (hopefully >> Tom already answered that). Rather, it is the answer to questions you >> *might* have asked (and perhaps one of them will be one you wished you >> had asked). >> >> Barplots have a low data:ink ratio...you are using an entire plot to >> convey 8 means. A variety of alternatives exist. As a minimal first >> step, you could just use points to show the means and skip all the >> wasted bar space, and you might add error bars in (A). You could also >> use boxplots to give your viewers (or just yourself) a sense of the >> distribution along with the medians (B). Another elegant option is >> violin plots. These are kind of like (exactly like?) mirrored density >> plots. A measure of central tendency is not explicitly shown, but the >> *entire* distribution and range is shown (C). >> >> Cheers, >> >> Josh >> >> (P.S. I hit send too soon before and sent you an offlist message with >> PDF examples) >> >> ## Create your data >> DF <- data.frame( >> Incidents = factor(rep(c("a", "b", "d", "e"), each = 25)), >> Months = factor(rep(1:2, each = 10)), >> Time = rnorm(100)) >> >> ## Load required packages >> require(ggplot2) >> require(Hmisc) >> >> ## Option A >> ggplot(DF, aes(x = Incidents, y = Time, colour = Months)) + >> stat_summary(fun.y = "mean", geom = "point", >> position = position_dodge(width = .90), size = 3) + >> stat_summary(fun.data = "mean_cl_normal", geom = "errorbar", >> position = "dodge") >> >> ## Option B >> ggplot(DF, aes(x = Incidents, y = Time, fill = Months)) + >> geom_boxplot(position = position_dodge(width = .8)) >> >> ## Option C >> ggplot(DF, aes(x = Time, fill = Months)) + >> geom_ribbon(aes(ymax = ..density.., ymin = -..density..), >> alpha = .2, stat = "density") + >> facet_grid( ~ Incidents) + >> coord_flip() >> >> ## Option C altered >> ggplot(DF, aes(x = Time, fill = Months)) + >> geom_ribbon(aes(ymax = ..density.., ymin = -..density..), >> alpha = .2, stat = "density") + >> facet_grid( ~ Incidents + Months) + >> scale_y_continuous(name = "density", breaks = NA, labels = NA) + >> coord_flip() >> >> On Fri, May 27, 2011 at 3:08 PM, steven mosher <mosherste...@gmail.com> >> wrote: >> > Hi, >> > >> > I'm really struggling with barplot >> > >> > I have a data.frame with 3 columns. The first column represents an >> > "incident" type >> > The second column represents a "month" >> > The third column represents a "time" >> > >> > Code for a sample data.frame >> > >> > incidents <- rep(c('a','b','d','e'), each =25) >> > months <- rep(c(1,2), each =10) >> > times <-rnorm(100) >> > >> > # make my sample data >> > >> > DF <- >> > >> data.frame(Incidents=as.factor(incidents),Months=as.factor(months),Time=times) >> > >> > # now calculate a mean for the "by" groups of incident type and month >> > >> > pivot <- >> > >> aggregate(DF$Time,by=list(Incidents=DF$Incidents,Months=DF$Month),FUN=mean,simplify=TRUE) >> > >> > What I want to create is a bar plot where I have groupings by incident >> type >> > ( a,b,d,e) and within each group >> > I have the months in order. >> > >> > So group 1 would be Type "a"; month 1,2; >> > group 2 would be Type "b"; month 1,2; >> > group 3 would be Type "d"; month 1,2; >> > group 4 would be Type "3"; month 1,2; >> > >> > I know barplot is probably the right function but I'm a bit lost on how >> to >> > specify groupings etc >> > >> > TIA >> > >> > [[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. >> > >> >> >> >> -- >> Joshua Wiley >> Ph.D. Student, Health Psychology >> University of California, Los Angeles >> http://www.joshuawiley.com/ >> > > [[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. > ______________________________________________ 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.