Error Bars R Plot
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies
Error.bar Function R
of this site About Us Learn more about Stack Overflow the company r errbar Business Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs Documentation Tags Users Badges r scatter plot with error bars Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a
Hmisc R
minute: Sign up Add error bars to show standard deviation on a plot in R up vote 23 down vote favorite 10 For each X-value I calculated the average Y-value and the standard deviation (sd) of each Y-value x = 1:5 y = c(1.1, 1.5, 2.9, 3.8, 5.2) sd = c(0.1, 0.3, 0.2, 0.2, 0.4) plot (x, y) How can I use
R Package Hmisc
the standard deviation to add error bars to each datapoint of my plot? r plot statistics standard-deviation share|improve this question edited Oct 16 '14 at 3:43 Craig Finch 11417 asked Feb 25 '13 at 8:59 John Garreth 4572413 also see plotrix::plotCI –Ben Bolker Feb 25 '13 at 15:13 add a comment| 5 Answers 5 active oldest votes up vote 16 down vote accepted A Problem with csgillespie solution appears, when You have an logarithmic X axis. The you will have a different length of the small bars on the right an the left side (the epsilon follows the x-values). You should better use the errbar function from the Hmisc package: d = data.frame( x = c(1:5) , y = c(1.1, 1.5, 2.9, 3.8, 5.2) , sd = c(0.2, 0.3, 0.2, 0.0, 0.4) ) ##install.packages("Hmisc", dependencies=T) library("Hmisc") # add error bars (without adjusting yrange) plot(d$x, d$y, type="n") with ( data = d , expr = errbar(x, y, y+sd, y-sd, add=T, pch=1, cap=.1) ) # new plot (adjusts Yrange automatically) with ( data = d , expr = errbar(x, y, y+sd, y-sd, add=F, pc
error bars Two within-subjects variables Note about normed means Helper functions Problem You want to plot means and error bars for a dataset. Solution To make graphs error bars in r barplot with ggplot2, the data must be in a data frame, and
R Summaryse
in “long” (as opposed to wide) format. If your data needs to be restructured, see this page for error bars in ggplot2 more information. Sample data The examples below will the ToothGrowth dataset. Note that dose is a numeric column here; in some situations it may be useful to convert it to http://stackoverflow.com/questions/15063287/add-error-bars-to-show-standard-deviation-on-a-plot-in-r a factor. tg <- ToothGrowth head(tg) #> len supp dose #> 1 4.2 VC 0.5 #> 2 11.5 VC 0.5 #> 3 7.3 VC 0.5 #> 4 5.8 VC 0.5 #> 5 6.4 VC 0.5 #> 6 10.0 VC 0.5 library(ggplot2) http://cookbook-r.com/Graphs/Plotting_means_and_error_bars_(ggplot2)/ First, it is necessary to summarize the data. This can be done in a number of ways, as described on this page. In this case, we’ll use the summarySE() function defined on that page, and also at the bottom of this page. (The code for the summarySE function must be entered before it is called here). # summarySE provides the standard deviation, standard error of the mean, and a (default 95%) confidence interval tgc <- summarySE(tg, measurevar="len", groupvars=c("supp","dose")) tgc #> supp dose N len sd se ci #> 1 OJ 0.5 10 13.23 4.459709 1.4102837 3.190283 #> 2 OJ 1.0 10 22.70 3.910953 1.2367520 2.797727 #> 3 OJ 2.0 10 26.06 2.655058 0.8396031 1.899314 #> 4 VC 0.5 10 7.98 2.746634 0.8685620 1.964824 #> 5 VC 1.0 10 16.77 2.515309 0.7954104 1.799343 #> 6 VC 2.0 10 26.14 4.797731 1.5171757 3.432090 Line graphs After the data is sum
Diet & Nutrition (28) Education (1) Evolution (35) Human Ecology (75) Infectious Disease (66) LaTeX (5) Primates (9) R (12) science http://monkeysuncle.stanford.edu/?p=485 (17) Social Network Analysis (17) Statistics (16) Teaching (10) Uncategorized http://docs.ggplot2.org/0.9.3.1/geom_errorbar.html (28) Meta Log in Entries RSS Comments RSS WordPress.org ← Latest Swine Flu Epidemic Curve for the United States Stanford Workshop in Biodemography → Plotting Error Bars in R August 24th, 2009 · 52 Comments · R One common frustration that error bars I have heard expressed about R is that there is no automatic way to plot error bars (whiskers really) on bar plots. I just encountered this issue revising a paper for submission and figured I'd share my code. The following simple function will plot reasonable error bars on a bar plot. PLAIN error bars in TEXT R: error.bar <- function(x, y, upper, lower=upper, length=0.1,...){ if(length(x) != length(y) | length(y) !=length(lower) | length(lower) != length(upper)) stop("vectors must be same length") arrows(x,y+upper, x, y-lower, angle=90, code=3, length=length, ...) } Now let's use it. First, I'll create 5 means drawn from a Gaussian random variable with unit mean and variance. I want to point out another mild annoyance with the way that R handles bar plots, and how to fix it. By default, barplot() suppresses the X-axis. Not sure why. If you want the axis to show up with the same line style as the Y-axis, include the argument axis.lty=1, as below. By creating an object to hold your bar plot, you capture the midpoints of the bars along the abscissa that can later be used to plot the error bars. PLAIN TEXT R: y <- rnorm(500, mean=1) y <- matrix(y,100,5) y.means <- apply(y,2,mean) y.sd <- apply(y,2,sd) barx <- barplot(y.means, names.arg=1:
needs to be set at the layer level if you are overriding the plot defaults. data A layer specific dataset - only needed if you want to override the plot defaults. stat The statistical transformation to use on the data for this layer. position The position adjustment to use for overlappling points on this layer ... other arguments passed on to layer. This can include aesthetics whose values you want to set, not map. See layer for more details. Description Error bars. Aesthetics geom_errorbar understands the following aesthetics (required aesthetics are in bold): x ymax ymin alpha colour linetype size width Examples # Create a simple example dataset df # Because the bars and errorbars have different widths # we need to specify how wide the objects we are dodging are dodge Mapping a variable to y and also using stat="bin". With stat="bin", it will attempt to set the y value to the count of cases in each group. This can result in unexpected behavior and will not be allowed in a future version of ggplot2. If you want y to represent counts of cases, use stat="bin" and don't map a variable to y. If you want y to represent values in the data, use stat="identity". See ?geom_bar for examples. (Deprecated; last used in version 0.9.2) p Mapping a variable to y and also using stat="bin". With stat="bin", it will attempt to set the y value to the count of cases in each group. This can result in unexpected behavior and will not be allowed in a future version of ggplot2. If you want y to represent counts of cases, use stat="bin" and don't map a variable to y. If you want y to represent values in the data, use stat="identity". See ?geom_bar for examples. (Deprecated; last used i