Jeff Newmiller and Dennis, As always, very helpful. I appreciate the comments on how best to organize the code as well. Simplifies things greatly.
Thanks, Nate On Wed, Sep 7, 2011 at 3:33 PM, Dennis Murphy <djmu...@gmail.com> wrote: > Hi: > > For your test data, try this: > > # Result of dput(NerveSurv) > NerveSurv <- structure(list(Time = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 0, > 0.25, 0.5, 0.75, 1, 1.25, 1.5, 0, 0.25, 0.5, 0.75, 1, 1.25, 1.5 > ), SAP = c(1, 1.04, 1.04, 1.06, 1.04, 1.22, 1.01, 1, 1.01, 1.01, > 1.06, 1.01, 0.977, 0.959, 1, 1.01, 1.06, 0.921, 0.951, 0.904, > 0.911), Temp = c(25L, 25L, 25L, 25L, 25L, 25L, 25L, 15L, 15L, > 15L, 15L, 15L, 15L, 15L, 8L, 8L, 8L, 8L, 8L, 8L, 8L), SAPSE = c(0, > 0.0412, 0.0935, 0.0818, 0.131, 0.144, 0.0712, 0, 0.0156, 0.0337, > 0.0481, 0.0168, 0.00486, 0.0155, 0, 0.00462, 0.0491, 0.0329, > 0.0304, 0.0471, 0.0722)), .Names = c("Time", "SAP", "Temp", "SAPSE" > ), class = "data.frame", row.names = c(NA, -21L)) > > limits<-aes(ymax = NerveSurv$SAP + NerveSurv$SAPSE, > ymin = NerveSurv$SAP - NerveSurv$SAPSE) > > # library('ggplot2') > p <- ggplot(data=NerveSurv,aes(x=Time,y=SAP)) > p + geom_errorbar(limits,width=0.2) + > geom_point(aes(fill=factor(Temp)), colour = colors()[173], > shape = 21, size=4) + > xlab("Time (min)") + > xlim(c(0, 2)) + > ylab("Normalized Spontaneous Action Potential Rate") + > ylim(c(0,1.6)) + > scale_fill_manual("Acclimation\nTemperature", breaks=c(8,18,25), > labels=c("25ºC", "18 ºC", "8 ºC"), > values=c(colours()[c(173,253,218)])) > > Notice the following in the above code: > > (1) As Jeff Newmiller pointed out, put geom_errorbar() before geom_point(). > (2) If you are going to be using the same value of a plot aesthetic, you > *set* it outside aes() rather than *map* it inside aes(). > See the revised code for geom_point(). The idea is that if a > variable is assigned > to a plot aesthetic (e.g., color, fill, shape), then it needs to > be mapped inside > aes(); if an aesthetic is set to a specific value, it is set outside > aes(). > (3) Your test data had an effective x-range of 0 - 1.5 rather than 0 - 50, > so > I shrunk xlim() for readability. > (4) You can use \n inside of a character string as a carriage return. See > the legend title for scale_fill_manual(). > (5) Style note: you want the layer addition operator + to be at the end of > a > line, not at the beginning. Copy and paste this code verbatim to > see what I mean: > p + geom_errorbar(limits,width=0.2) > + geom_point(aes(fill=factor(Temp)), colour = colors()[173], > shape = 21, size=4) > > This happens because the first line is syntactically complete. > > HTH, > Dennis > > On Wed, Sep 7, 2011 at 2:48 PM, Nathan Miller <natemille...@gmail.com> > wrote: > > Hi all, > > > > This seems like a basic problem, but no amount of playing with the code > has > > solved it. I have a time-series data set like that shown below (only > longer) > > and am seeking to plot the data with filled, circular points and error > bars. > > I would like the error bars to be behind the points otherwise they tend > to > > obscure the points (especially when I have a lot of points in the actual > > data set). Despite providing a fill colour for the points and using > shapes > > that utilize fill colours, the error bars are always placed on top of the > > points. Can anyone see the error I am making? I simply want to move the > > error bars so they are behind the data points. > > > > Thanks for your help. I assume its simple...or else its a bug. > > > > Nate > > > > > > Time SAP Temp SAPSE > > 0.00 1.000000 25 0.000000 > > 0.25 1.040000 25 0.041200 > > 0.50 1.040000 25 0.093500 > > 0.75 1.060000 25 0.081800 > > 1.00 1.040000 25 0.131000 > > 1.25 1.220000 25 0.144000 > > 1.50 1.010000 25 0.071200 > > 0.00 1.000000 15 0.000000 > > 0.25 1.010000 15 0.015600 > > 0.50 1.010000 15 0.033700 > > 0.75 1.060000 15 0.048100 > > 1.00 1.010000 15 0.016800 > > 1.25 0.977000 15 0.004860 > > 1.50 0.959000 15 0.015500 > > 0.00 1.000000 8 0.000000 > > 0.25 1.010000 8 0.004620 > > 0.50 1.060000 8 0.049100 > > 0.75 0.921000 8 0.032900 > > 1.00 0.951000 8 0.030400 > > 1.25 0.904000 8 0.047100 > > 1.50 0.911000 8 0.072200 > > > > > limits<-aes(ymax=NerveSurv$SAP+NerveSurv$SAPSE,ymin=NerveSurv$SAP-NerveSurv$SAPSE) > > > > p<-ggplot(data=NerveSurv,aes(x=Time,y=SAP)) > > > > p+geom_point(aes(colour=factor(Temp), shape=factor(Temp), > > fill=factor(Temp)), size=4) > > +geom_errorbar(limits,width=0.2) > > +xlab("Time (min)") > > +xlim(c(0,50)) > > +ylab("Normalized Spontaneous Action Potential Rate") > > +ylim(c(0,1.6)) > > +scale_shape_manual("Acclimation Temperature",breaks=c(8,18,25), > > labels=c("25 ºC", "18 ºC", "8 ºC"),values=c(21,21,21)) > > +scale_fill_manual("Acclimation Temperature",breaks=c(8,18,25), > labels=c("25 > > ºC", "18 ºC", "8 ºC"),values=c(colours()[c(173,253,218)])) > > +scale_colour_manual("Acclimation Temperature",breaks=c(8,18,25), > > labels=c("25 ºC", "18 ºC", "8 ºC"), values=c(colours()[c(173,173,173)])) > > > > [[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]]
______________________________________________ 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.