[R] Plotting multiple curves with lattice graphs

From: Karen Chiswell <karenc2204_at_yahoo.com>
Date: Thu 05 Apr 2007 - 13:50:39 GMT


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.

R-help@stat.math.ethz.ch 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. Received on Fri Apr 06 00:18:25 2007

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Thu 05 Apr 2007 - 15:30:47 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.