Eleni Rapsomaniki
2006-Dec-15 13:42 UTC
[R] Plotting multiple smooth lines on the same graph
Hi Say we have the following data sets: d1=cbind(rnorm(100,1,1), rnorm(100,10,50)) d2=cbind(rnorm(100,5,1), rnorm(100,1,5)) I want to plot them both on the same graph with a curve fitted for each. I could call scatter.smooth to plot the first curve, but how do I add the second? scatter.smooth(d1) Many thanks Eleni Rapsomaniki
Eleni Rapsomaniki wrote:> Hi > > Say we have the following data sets: > d1=cbind(rnorm(100,1,1), rnorm(100,10,50)) > d2=cbind(rnorm(100,5,1), rnorm(100,1,5)) > > I want to plot them both on the same graph with a curve fitted for each. > I could call scatter.smooth to plot the first curve, but how do I add the > second?I would probably restructure the data and use xyplot() in the lattice package, but you also could do something along these lines: d1 <- cbind(rnorm(100), rnorm(100,3,1)) d2 <- cbind(rnorm(100), rnorm(100,1,1)) plot(d1[,1], d1[,2], xlim=range(c(d1[,1], d2[,1])), ylim=range(c(d1[,2], d2[,2])), col="blue", xlab="X", ylab="Y") points(d2[,1], d2[,2], col="red") points(loess.smooth(d1[,1], d1[,2]), type="l", col="blue") points(loess.smooth(d2[,1], d2[,2]), type="l", col="red")> scatter.smooth(d1) > > Many thanks > Eleni Rapsomaniki > > ______________________________________________ > R-help at 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.-- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
Hi you can either use supsmu smoother plot(d1) # make sure limits for axes are OK (which is not in this case and you need to set xlim and ylim accordingly lines(supsmu(d1[,1], d1[,2])) points(d2, pch=2) lines(supsmu(d2[,1], d2[,2])) or you can use loess smoother which is used in scatter.smooth and do some ordering before plotting and similar plot lines points lines construction. HTH Petr On 15 Dec 2006 at 13:42, Eleni Rapsomaniki wrote: Date sent: Fri, 15 Dec 2006 13:42:25 +0000 From: Eleni Rapsomaniki <e.rapsomaniki at mail.cryst.bbk.ac.uk> To: r-help at stat.math.ethz.ch Subject: [R] Plotting multiple smooth lines on the same graph> Hi > > Say we have the following data sets: > d1=cbind(rnorm(100,1,1), rnorm(100,10,50)) > d2=cbind(rnorm(100,5,1), rnorm(100,1,5)) > > I want to plot them both on the same graph with a curve fitted for > each. I could call scatter.smooth to plot the first curve, but how do > I add the second? > > scatter.smooth(d1) > > Many thanks > Eleni Rapsomaniki > > ______________________________________________ > R-help at 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.Petr Pikal petr.pikal at precheza.cz