[R] Can't mix high level and low level plot functions.
Lothar Botelho-Machado
r-help at botelho-machado.de
Mon Sep 25 19:56:52 CEST 2006
Hey R-Comunity,
I'd like to print out an histogram of some experimental data and add a
smooth curve of a normal distribution with an ideally generated
population having the same mean and standard deviation like the
experimental data.
The experimental data is set as vector x and its name is set to
group.name. I paint the histogram as follows:
hist(data, freq=FALSE, col="lightgrey", ylab="Density", xlab=group.name)
First I did the normal distribution curve this way:
lines(x, dnorm(x, mean=mean(x), sd=sd(x)), type="l", lwd=2)
This curve just uses as many values as there are in x. When using small
amounts of sample populations the curve looks really shaky.
I tried this one using a high level plot function as well:
curve(dnorm, n=10000, add=TRUE, xlim=range(x))
The advantage is, now I can set an ideal population of 10000 to get the
ideal curve really smooth. But the big disadvantage is, I don't know how
to add "mean=mean(x), sd=sd(x)" arguments to it? It says that it can't
mix high level with low level plot functions when I try to set some kind
of parameter like "n=10000" to the low level function, it says that
there ain't enough x values.
So my question is, how to get a smooth curve placed of dnorm over an
histogram of sample data, ideally by using the curve method?
TIA,
Lothar Rubusch
More information about the R-help
mailing list