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 <djmuser@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慢", "18 慢", "8 慢"),
>                       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 <natemiller77@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 慢", "18 慢", "8 慢"),values=c(21,21,21))
> > +scale_fill_manual("Acclimation Temperature",breaks=c(8,18,25),
> labels=c("25
> > 慢", "18 慢", "8 慢"),values=c(colours()[c(173,253,218)]))
> > +scale_colour_manual("Acclimation Temperature",breaks=c(8,18,25),
> > labels=c("25 慢", "18 慢", "8 慢"), 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]]

