[R] barplot with a probability density curve

S Ellison S.Ellison at lgc.co.uk
Mon Mar 15 03:07:50 CET 2010

You have three problems:
i) Barplot's plot locations are not at 100-700 in your picture.
ii) density applied to your bar hights will produce the density as if
those are x locations, not heights. 
iii) density's height is scaled to unit area and not the height of your

And a statistical issue: barplot typically plots heights for a
categorical list of separate groups, while density assumes that x and y
are pretty much continuous interval scale quantities. Combining the two
would not generally have any useful meaning.

So the bad news is that not a lot of what you're doing is right. 

That isn't very helpful, so I'm going to guess at what you might be
trying to do. A thing which _would_ have some useful meaning is a
combination of a histogram (special case of bar plot) and a density

Let's say you had data like this:

x<-rep(c(100,200,300,400,500,600,700), c(1,2,3,5,2,3,1))

(I've guessed at your actual values just for illustration; usually x
would not be simple integer multiples of 100, but it shows the

Then you could do
hist(x, breaks=seq(50,750,100), freq=FALSE)

The freq=FALSE tells the histogram to scale for unit area so the density
line can be compared with the histogram heights.

Does that help?

Steve E

>>> Olga Lyashevska <olga at herenstraat.nl> 03/14/10 9:32 PM >>>
Dear all, 

I am making a barplot as following:


I am also trying to add a probability density curve, however using
lines(density(c(1,2,3,5,2,3,1))) does not give a desired result.

Any tips?


R-help at r-project.org mailing list
PLEASE do read the posting guide
and provide commented, minimal, self-contained, reproducible code.

This email and any attachments are confidential. Any use...{{dropped:8}}

More information about the R-help mailing list