[R] Plotting multiple curves with lattice graphs
Karen Chiswell
karenc2204 at yahoo.com
Thu Apr 5 15:50:39 CEST 2007
Hi List,
I would like to plot multiple curves (parametric
density curves) in one plot.
For example:
# parameters for three normal density curves
parms =
data.frame(ID=c(1,2,3),mu=c(50,55,60),sigma=c(10,12,15))
# I can easily draw three normal density curves using
curve():
curve(dnorm(x,mean=parms$mu[1],sd=parms$sigma[1]),from=0,
to=150, ylab="density", col="red")
curve(dnorm(x,mean=parms$mu[2],sd=parms$sigma[2]),from=0,
to=150, ylab="density", col="blue", add=TRUE)
curve(dnorm(x,mean=parms$mu[3],sd=parms$sigma[3]),from=0,
to=150, ylab="density", col="forestgreen", add=TRUE)
but I would like to use lattice graphics (even though
I only want one panel) because I want to save the
resulting plot in an object.
I could create a dataframe that contains the values I
want to plot, and then plot using xyplot(). For
example,
x = seq(from=0, to=150, length=100)
plot.df = data.frame(ID=rep(parms$ID,each=100),
x=rep(x,3),mu=rep(parms$mu,each=100),sigma=rep(parms$sigma,each=100))
plot.df$d =
dnorm(plot.df$x,mean=plot.df$mu,sd=plot.df$sigma)
require(lattice)
p=xyplot(d~x, data=plot.df, groups=ID, type="l")
However... is there a more elegant/efficient way to
do this? I have tried using the panel.curve panel
function (with xyplot() and histogram()), but I am not
very experienced with using panel functions (or R
actually), and I haven't had any success with this
yet.
Many thanks for any suggestions,
Karen
-------------------------------
Karen Chiswell
Department of Statistics
North Carolina State University
-------------------------------
____________________________________________________________________________________
It's here! Your new message!
Get new email alerts with the free Yahoo! Toolbar.
More information about the R-help
mailing list