>>>>> "ASh" == asherman <[EMAIL PROTECTED]> >>>>> on Thu, 27 Nov 2008 14:30:04 +0100 (CET) writes:
ASh> Full_Name: Arkady Sherman ASh> Version: 2.8.0 ASh> OS: Windows XP ASh> Submission from: (NULL) (158.195.16.114) ASh> Please consider initialization of the "seg.len" ASh> variable. It's done only ASh> if (do.lines) { seg.len <- 2 .., ASh> but after the seg.len is used: ASh> if (has.pch) { ASh> pch <- rep(pch, length.out = n.leg) ASh> pt.bg <- rep(pt.bg, length.out = n.leg) ASh> pt.cex <- rep(pt.cex, length.out = n.leg) ASh> pt.lwd <- rep(pt.lwd, length.out = n.leg) ASh> ok <- !is.na(pch) & (is.character(pch) | pch >= 0) ASh> x1 <- (if (merge) ASh> xt - (seg.len/2) * xchar ASh> so if do.lines isn't specified, but has.pch and merge are specified an error is ASh> produced. but do.lines is never specified. It can be FALSE (if there are no lines drawn) and a user can indeed set 'merge = TRUE" in such a situation. However, can you think of a situation where this was desirable? I think it should not have any effect in such a case {... but unfortunately it currently has ... yet another sign that legend() is ``hopelessly over-featured'' ;-) } and possibly rather give a warning in such a case... ASh> Guess that seg.len should be initialized before the condition "if (do.lines)" not really; it means 'segment length' should not be used unless segments ("lines") are drawn. Thank you for your note; you are right that legend() is not entirely correct in such a border-line situation. Regards, Martin Maechler, ETH Zurich ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel