# Re: [R] Overlying a Normal Dist in a Barplot

From: Gabor Grothendieck <ggrothendieck_at_gmail.com>
Date: Sat 09 Jul 2005 - 11:58:02 EST

On 7/8/05, Bret Collier <bret@tamu.edu> wrote:
> R-Users,
> Hopefully someone can shed some light on these questions as I had
> little luck searching the archives (although I probably missed something
> in my search due to the search phrase). I estimated multinomial
> probabilities for some count data (number successful offspring) ranging
> from 0 to 8 (9 possible response categories). I constructed a barplot
> (using barplot2) and I want to "overlay" a normal distribution on the
> figure (using rnorm (1000, mean, sd)). My intent is to show that using
> a mean(and associated sd) estimated from discrete count data may not be
> a valid representation of the distribution of successful offspring.
>
> Obviously the x and y axes (as structured in barplot2) will not be
> equivalent for these 2 sets of information and this shows up in my
> example below.
>
> 1) Is it possible to somehow reconcile the underlying x-axis to the
> same scale as would be needed to overly the normal distribution (e.g.
> where 2.5 would fall on the normal density, I could relate it to 2.5 on
> the barplot)? Then, using axis (side=4) I assume I could insert a
> y-axis for the normal distribution.
>
> 2) Is lines(density(x)) the appropriate way to insert a normal
> distribution into this type of figure? Should I use 'curve'?
>
> If someone could point me in the right direction, I would appreciate
> it.
>
> TIA, Bret
>
> Example:
>
> testdata
> 0 0.196454948
> 1 0.063515510
> 2 0.149187592
> 3 0.237813885
> 4 0.282127031
> 5 0.066469719
> 6 0.001477105
> 7 0.001477105
> 8 0.001477105
>
>
> x<-rnorm(1000, 2.84, 1.57)
> barplot2(testdata, xlab="Fledgling Number",
> ylab="Probability", ylim=c(0, 1), col="black",
> border="black", axis.lty=1)
> lines(density(x))
>

Maybe something like this using rect and curve: