On 03/15/2010 08:32 AM, Olga Lyashevska wrote:
Dear all,
I am making a barplot as following:
barplot(c(1,2,3,5,2,3,1),names.arg=c("100","200","300","400","500","600","700"),xlab="diameter",ylab="flow",main="some
title",space=0.1)
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.
Hi Olga,
Part of your problem is that the barplot function places bars at
positions along the abcissa that are not quite what you expect. These
start at 0.6 and end at 7.2 with an increment of 1.1. The density
function produces values that begin at -1.048 and end at 7.048,
effectively shifting the density curve to the left.
As noted by other correspondents, the density function may not be what
you want anyway. If you want a smoothed line that infers what might
happen if flow for intermediate values of diameter were measured, you
could try:
lines(spline(1:7,c(1,2,3,5,2,3,1),xmin=0,xmax=8))
The smoothed values are still a bit offset, so you might consider using:
library(plotrix)
barp(c(1,2,3,5,2,3,1),
names.arg=c("100","200","300","400","500","600","700"),
xlab="diameter",ylab="flow",main="some title",height.at=0:5)
lines(spline(1:7,c(1,2,3,5,2,3,1),xmin=0,xmax=8))
As the barp function places the bars at integer values, which happen to
be convenient for this case, but also are easy to adjust if you used the
real diameter values.
Jim
______________________________________________
R-help@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.