On 02/21/2012 11:56 PM, Alaios wrote:
Dear all,
I have a function that for a variable number of inputs plots them to the same
plot
I am doing this quite simply by
plot(seq(from=start, to=stop, length.out=np), datalist[[1]]$dataset
xlim=c(start, stop), ylim=c(0, 1), type="l")
if (length(datalist)> 1) {
for (i in 2:length(datalist)) {
np<- length(datalist[[i]]$dataset)
lines(seq(from=start, to=stop, length.out=np),
datalist[[i]]$dataset$, lty=i)
}
}
as you can see, specifically this line
lines(seq(from=start, to=stop, length.out=np), datalist[[i]]$dataset$
lty=i)
is changing the line type so any different input is plotted with different line
type.
This works quite well for 6 lines but if the arguments are more than 6 (in my
case 7) the line type starts from the beginning. Is it possible to keep that
loop and have the lines produced in plots a bit more customized (like lines
with squares and or cubes).
I have already checked in the ?par
but I can not find how I can modify the line in that sense, and especially
doing this smart inside a for loop.
Hi Alex,
The easiest way is to define a vector of more line types and then step
through that vector. Here is one with the default five broken lines and
five more that are reasonably distinguishable:
mylinetypes=c("44", "13", "1343", "73",
"2262","7272","5331","3366","2714","6224")
plot(1:10,type="n")
for(i in 1:10) abline(h=i,lty=mylinetypes[i])
Work out a way to generate different line types automatically? You might
be able to do this by some tricky algorithm that applied a sequence like
(+3,-2,+1,-1) to your index and then rotating the sequence on each
iteration, BUT, your plot would still probably look like a mess with
more than ten lines.
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.