Thanks Jim for the excellent solution. Can I make this function more flexible for the usage of different numbers of parameters? Tom jim holtman skrev: The simple way is to enclose it in a 'function' and pass parameters. Assuming that you have the same number of parameters, then the following will do: my.func <- function(x,y,d1,v1,s1,t1,s2,t2,s3,t3,s4,t4,s5,t5) { op <- par(bg = "grey97") par(mfrow=c(1,2)) plot(d1,v1, pch="v", col="orange",cex=0.6, lwd=2, xlab="day", ylab="resp",cex.main =1,font.main= 1,main=" Surv data",ylim=y,xlim=x, col.main="navyblue",col.lab="navyblue",cex.lab=0.7) points(s1,t1, pch="A", col="green4", cex=1) points(s2,t2, pch="B",col="navyblue", cex=1) points(s3,t3, pch="C",col="red", cex=1) points(s4,t4, pch="D",col="darkviolet", cex=1) points(s5,t5, pch="E",col="blue", cex=1) legend("topright",lbels,col=c("orange","green4","navyblue","red","darkviolet","blue"), text.col=c("orange","green4","navyblue","red","darkviolet","steelblue"), pch=c("v","A","B","C","D","E"),bg='gray100',cex=0.7,box.lty=1,box.lwd=1) abline(h = -1:9, v = 0:8, col = "lightgray", lty=3) par(op) } # call it with my.func(x,y,d1,v1,s1,t1,s2,t2,s3,t3,s4,t4,s5,t5) You might also include the data in a list to make it easier On 9/20/07, Tom Cohen wrote: > Dear list, > > I have done a scatter plot of multiple variables in the same graph, with different col and pch. I managed to do it with the following code but not know how to make a function of these so that next time if I want to do similar graph but with new variables, I dont have to copy the code and then change the old variables with the new ones but just call a function with the new variables. I dont have any experience in making a function and would be very grateful if you can help me. A function will shorten my prog dramatically, since I repeat tthis type of graph alots in my analysis. > > Thanks in advance, > Tom > > op <- par(bg = "grey97") > par(mfrow=c(1,2)) > plot(d1,v1, pch="v", col="orange",cex=0.6, lwd=2, > xlab="day", ylab="resp",cex.main =1,font.main= 1,main=" Surv data",ylim=y,xlim=x, > col.main="navyblue",col.lab="navyblue",cex.lab=0.7) > > points(s1,t1, pch="A", col="green4", cex=1) > points(s2,t2, pch="B",col="navyblue", cex=1) > points(s3,t3, pch="C",col="red", cex=1) > points(s4,t4, pch="D",col="darkviolet", cex=1) > points(s5,t5, pch="E",col="blue", cex=1) > legend("topright",lbels,col=c("orange","green4","navyblue","red","darkviolet","blue"), > text.col=c("orange","green4","navyblue","red","darkviolet","steelblue"), > pch=c("v","A","B","C","D","E"),bg='gray100',cex=0.7,box.lty=1,box.lwd=1) > abline(h = -1:9, v = 0:8, col = "lightgray", lty=3) > par(op) > > > > > --------------------------------- > > Jämför pris på flygbiljetter och hotellrum: http://shopping.yahoo.se/c-169901-resor-biljetter.html > [[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. > > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? --------------------------------- Låna pengar utan säkerhet. [[alternative HTML version deleted]]