[R] package to plot mean and standard deviation directly on data
Luigi Marongiu
marongiu.luigi at gmail.com
Tue May 13 14:15:39 CEST 2014
Dear Duncan and Jim,
thank you fo ryour reply. Please do not worry about the code: it was
just an example of the lenghty procedure I have to apply to plot the
standard deviation lines; the actual code is then shaped according to
the data at hand.
I will have a look at the packages you have suggested.
Best regards
Luigi
On Tue, May 13, 2014 at 1:13 AM, Duncan Mackay <dulcalma at bigpond.com> wrote:
> Hi Luigi
>
> I have not got time at the moment to look at you question but see
>
> library(xyplot)
> demo(intervals)
>
> Duncan
>
> Duncan Mackay
> Department of Agronomy and Soil Science
> University of New England
> Armidale NSW 2351
> Email: home: mackay at northnet.com.au
>
>
>
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Luigi Marongiu
> Sent: Tuesday, 13 May 2014 03:50
> To: r-help at r-project.org
> Subject: [R] package to plot mean and standard deviation directly on data
>
> Dear all,
> is there a package, preferably not ggplot, to draw the lines for the
> standard deviation just by providing the vector with the data? more or
> less as it happens with the boxplot function.
> the procedure i implemented herein requires the calculation of the
> means, standard deviations, limits (mean+/-SD) and the horizontal bars
> as well, everything plotted individually. the packages i have seen on
> google they all require to calculate the mean/SD prior to the plot.
> best wishes,
> luigi
>
>
> # in case you are interested this is the code, which is faulty for the
> factor of the variable "sample"
>
> my.data<-structure(list(
> group = c(
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),
> sample = c(
> 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
> 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
> 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1),
> copy = c(
> 626.01, 584.37, 568.5, 154.76, 146.47, 155.83,
> 297.64, 291.56, 272.16, 414.19, 402.94, 402.94,
> 351.11, 274.04, 291.56, 66.82, 39.06, 83.87,
> 16.98, 45.76, 15, 1.39, 98.25, 13.62, 181.32,
> 142.49, 108.94, 4.95, 5.92, 4.72, 25.14, 31.12,
> 40.15, 34.27, 26.93, 24.8)),
> row.names = c(NA, -36L), class = "data.frame")
> # define subset
> A<-subset(my.data, group==0)
> # define average and standard deviation
> avg.A<-aggregate(copy ~ sample, A, mean)
> names(avg.A)<-c("samp.", "avg")
> sd.A<-aggregate(copy ~ sample, A, sd)
> names(sd.A)<-c("Samp", "sd")
> A.bound<-merge(avg.A, sd.A, by.x="samp.", by.y="Samp")
> # define limits
> min.A<-A.bound$avg - A.bound$sd
> max.A<-A.bound$avg + A.bound$sd
> # plot
> plot(avg ~ samp., data=avg.A, pch=16, ylim=c(-10, 600),
> las=3, cex.lab=1.5, cex.main=1.8, col="black",
> ylab=expression(bold("copy")),
> xlab=expression(bold("sample")),
> main="Mean and std dev")
> # add limit segments
> segments(seq(length(avg.A$sample)), max.A, seq(length(avg.A$sample)),
> min.A)
> segments(seq(length(avg.B$sample)), max.B, seq(length(avg.B$sample)),
> min.B)
> # add notch
> notch<-0.02 # define end of bar extension
> segments(seq(length(avg.A$sample))-notch, max.A,
> seq(length(avg.A$sample))+notch, max.A)
> segments(seq(length(avg.A$sample))-notch, min.A,
> seq(length(avg.A$sample))+notch, min.A)
>
> ______________________________________________
> R-help at 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.
>
More information about the R-help
mailing list