On 01/31/2010 02:33 AM, Jamie Smith wrote:
I am graphing longitudinal data from three time points. I'd like to draw a
solid line from point 1 to point 2, and then a dashed line from point 2 to
point 3. It works if I do it in two steps:
first.vector<- c(mean(year1$variable1), mean(year2$variable1))
second.vector<- c(NA, mean(year2$variable1), mean(year3$variable1))
plot(first.vector, type="b", xlim=c(1,3))
lines(second.vector, type="b", lty=2)
It's clunky, though, and I have a bunch of these to do. Can I streamline it?
Hi Jamie,
Time to start writing functions...
multi.line.plot<-function(x,y,type="b",lty=par("lty"),
col=par("fg"),...) {
if(missing(y) && !missing(x)) {
y<-x
x<-1:length(y)
}
nlines<-length(y)-1
if(length(lty) < nlines) lty<-rep(lty,length.out=nlines)
if(length(col) < nlines) col<-rep(col,length.out=nlines)
plot(x,y,type="n",...)
for(i in 1:nlines) lines(x[i:(i+1)],y[i:(i+1)],type=type,
lty=lty[i],col=col[i])
}
This lets you draw lines with different line types and colors. Now you
could do things with line widths if you really wanted to.
Jim
______________________________________________
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.