HI, Modified version of ggplot() library(ggplot2) set.seed(1) mat1<-melt(mat) new1<-aggregate(mat1,list(mat1$X1),function(x) mean(x))[,4]
mat2<-within(mat1,{X2<-as.factor(X2)}) ggplot(data=mat2,aes(x=X1,y=value,group=X2))+geom_line(aes(colour=X2))+geom_line(data=mat2,aes(y=new1),colour="darkred")+opts(legend.position="none") A.K. ----- Original Message ----- From: Rui Barradas <ruipbarra...@sapo.pt> To: arun <smartpink...@yahoo.com> Cc: eliza botto <eliza_bo...@hotmail.com>; R help <r-help@r-project.org> Sent: Friday, September 21, 2012 9:18 PM Subject: Re: [R] efficient overlapping average curve on original curves And with ggplot2. library(ggplot2) library(scales) dat <- data.frame(id = seq_len(nrow(mat)), mat) dm <- reshape2::melt(dat, id = "id") dm$variable <- as.ordered(dm$variable) dm$avg <- rowMeans(mat) p <- ggplot(dm, aes(x = id, y = value, group = variable)) p + geom_line(data = dm, colour = alpha("blue", 1/5)) + geom_line(data = dm, aes(y = avg), colour = "darkblue") Rui Barradas Em 22-09-2012 02:02, arun escreveu: > HI, > > Similar graph in xyplot: > set.seed(1) > > mat <- matrix(rnorm(100*37), ncol = 37) > mat <- apply(mat, 2, cumsum) > mat1<-melt(mat) > > > library(latticeExtra) > p0<-xyplot(value~X1,group=X2,data=mat1,type="l",ylab="mat1") > p1<-xyplot(aggregate(mat1,list(mat1$X1),function(x) > mean(x))[,4]~X1,data=mat1,type="l",col="black",lwd=2) > p0+p1 > > A.K. > > > > ----- Original Message ----- > From: Rui Barradas <ruipbarra...@sapo.pt> > To: eliza botto <eliza_bo...@hotmail.com> > Cc: "r-help@r-project.org" <r-help@r-project.org> > Sent: Friday, September 21, 2012 7:33 PM > Subject: Re: [R] efficient overlapping average curve on original curves > > Hello, > > Something like this? > > > # Make up some data > mat <- matrix(rnorm(100*37), ncol = 37) > mat <- apply(mat, 2, cumsum) > avg <- rowMeans(mat) > > # matplot - matrix plot > matplot(mat, type = "l") > lines(avg, lwd = 2) > > > I've also seen some very nice graphics for ploting many lines in ggplot2 > using transparency in order to give a visual picture of where there are > more lines. > > Hope this helps, > > Rui Barradas > Em 22-09-2012 00:11, eliza botto escreveu: >> Dear useRs, >> >> my question could be very basic for which i apologize in advance. >> Each column of a matrix with dimensions 365 rows and 37 columns was drawn >> against another matrix of dimensions 365 rows and 1 column. with that i was >> able to draw 37 curves on the same axis. >> now i want to draw an average curve of these 37 curves on the same axis in >> such a way that all the curves (average and 37 curves) should appear on the >> same axis at the same time. >> i used >> >>> par(new=TRUE) >> But it has 2 limitations >> >> 1- it completly distorted y-axis values >> 2- it was not very efficient as average curve in no overlapped the original >> curves. >> >> can any1 advise me what to do? >> thanks in advance for you time. >> >> eliza botto >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> 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. > ______________________________________________ > 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. > ______________________________________________ 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.