I want to show little bell curves on my bar chart to illustrate the confidence ranges. The following example from Paul Teetor's "R Cookbook" does what I want, but shows I-beams instead of bell curves. The I-beams suggest uniform, rather than normal distributions. So I am looking for a way to plot normal distribution curves instead. # Example from Paul Teetor, "R Cookbook", page 238. library(gplots) attach(airquality) heights <- tapply(Temp,Month,mean) lower <- tapply(Temp,Month,function(v) t.test(v)$conf.int[1]) upper <- tapply(Temp,Month,function(v) t.test(v)$conf.int[2]) barplot2(heights,plot.ci=TRUE,ci.l=lower,ci.u=upper, ylim=c(50,90),xpd=FALSE, main="Mean Temp. By Month", names.arg=c("May","Jun","Jul","Aug","Sep"), ylab="Temp (deg. F)") Does anyone know a package that does this or, alternatively, can anyone suggest a direction to go in if one were to write R code to do this? Philip
Hi, Would something like yarrr do the trick? https://ndphillips.github.io/yarrr.html Or gghalves? https://github.com/erocoar/gghalves Cheers, Ben On Sat, Dec 7, 2019 at 9:32 PM <phil at philipsmith.ca> wrote:> I want to show little bell curves on my bar chart to illustrate the > confidence ranges. The following example from Paul Teetor's "R Cookbook" > does what I want, but shows I-beams instead of bell curves. The I-beams > suggest uniform, rather than normal distributions. So I am looking for a > way to plot normal distribution curves instead. > > # Example from Paul Teetor, "R Cookbook", page 238. > library(gplots) > attach(airquality) > heights <- tapply(Temp,Month,mean) > lower <- tapply(Temp,Month,function(v) t.test(v)$conf.int[1]) > upper <- tapply(Temp,Month,function(v) t.test(v)$conf.int[2]) > barplot2(heights,plot.ci=TRUE,ci.l=lower,ci.u=upper, > ylim=c(50,90),xpd=FALSE, > main="Mean Temp. By Month", > names.arg=c("May","Jun","Jul","Aug","Sep"), > ylab="Temp (deg. F)") > > Does anyone know a package that does this or, alternatively, can anyone > suggest a direction to go in if one were to write R code to do this? > > Philip > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >-- Ben Tupper Bigelow Laboratory for Ocean Science West Boothbay Harbor, Maine http://www.bigelow.org/ https://eco.bigelow.org [[alternative HTML version deleted]]
Thanks for these helpful suggestions. These options don't work in my case because I don't know the individual observations (the dots). A statistical agency collects the observations and keeps them confidential. It provides the mean value and the standard deviation, plus the fact that the observations are normally distributed. So I have enough information to draw the distribution function. Mean values and standard deviations are provided for several cases (geographies). I can plot the mean values for all cases in a bar chart. I can show the confidence intervals as I-beams, as in my example. But I would prefer to show the confidence intervals as truncated bell curves, referring to, say, 95% of the unseen observations. Philip On 2019-12-07 22:07, Ben Tupper wrote:> Hi, > > Would something like yarrr do the trick? > https://ndphillips.github.io/yarrr.html > > Or gghalves? https://github.com/erocoar/gghalves > > Cheers, > Ben > > On Sat, Dec 7, 2019 at 9:32 PM <phil at philipsmith.ca> wrote: > >> I want to show little bell curves on my bar chart to illustrate the >> confidence ranges. The following example from Paul Teetor's "R >> Cookbook" >> does what I want, but shows I-beams instead of bell curves. The >> I-beams >> suggest uniform, rather than normal distributions. So I am looking >> for a >> way to plot normal distribution curves instead. >> >> # Example from Paul Teetor, "R Cookbook", page 238. >> library(gplots) >> attach(airquality) >> heights <- tapply(Temp,Month,mean) >> lower <- tapply(Temp,Month,function(v) t.test(v)$conf.int [1][1]) >> upper <- tapply(Temp,Month,function(v) t.test(v)$conf.int [1][2]) >> barplot2(heights,plot.ci [2]=TRUE,ci.l=lower,ci.u=upper, >> ylim=c(50,90),xpd=FALSE, >> main="Mean Temp. By Month", >> names.arg=c("May","Jun","Jul","Aug","Sep"), >> ylab="Temp (deg. F)") >> >> Does anyone know a package that does this or, alternatively, can >> anyone >> suggest a direction to go in if one were to write R code to do this? >> >> Philip >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. > > -- > > Ben Tupper > Bigelow Laboratory for Ocean Science > West Boothbay Harbor, Maine > http://www.bigelow.org/ > > https://eco.bigelow.org > > > > Links: > ------ > [1] http://conf.int > [2] http://plot.ci