Paul Johnson
2017-Jun-19 21:58 UTC
[Rd] arrows: no vectors for "code" and "angle" parameters
I was teaching new R users to make some fun graphs. I had some arrows examples worked up we came across a problem. The arrows function ignores 2nd and following elements of vectors given as code an angle. Would you please consider 1) allowing vectors for code and angle, or 2) returning an error or warning when user mistakenly supplies a vector for those parameters? When code like this is wrapped into an Sweaved document--we I don't see the graph on the screen--this error is difficult to catch while proofreading. Example: x0 <- c(-1, -4, 4.5) y0 <- c(-1, -4, -8) x1 <- c(2, -2, -3) y1 <- c(4, 4, 18) mylengths <- c(0.2, 0.3, 0.15) mycodes <- c(3, 2, 1) myangle <- c(10, 60, 80) plot(x = c(-5, 5), y = c(-10, 20), type = "n", xlab = "", ylab = "") arrows(x0 = x0, y0 = y0, x1 = x1, y1 = y1, length = mylengths, code = mycodes, angle = myangle) I found a workaround, but this is more difficult to explain to beginners... plot(x = c(-5, 5), y = c(-10, 20), type = "n", xlab = "", ylab = "") mapply(arrows, x0 = x0, y0 = y0, x1 = x1, y1 = y1, length = mylengths, angle = myangle, code = mycodes) pj -- Paul E. Johnson http://pj.freefaculty.org Director, Center for Research Methods and Data Analysis http://crmda.ku.edu To write to me directly, please address me at pauljohn at ku.edu.
Paul Murrell
2017-Jun-20 00:23 UTC
[Rd] [FORGED] arrows: no vectors for "code" and "angle" parameters
Hi I have added a warning (r-devel r72811). I did this rather than allow vectors for length/angle/code because ... - consistency with (implicit) description of arguments in help page - backward compatibility (or at least no risk of not-backwards-incompatible) - it was easier Note that it is only the length/angle/code that are scalar, e.g., the graphical parameters ARE recycled ... arrows(x0 = x0, y0 = y0, x1 = x1, y1 = y1, length = mylengths, code = mycodes, angle = myangle, col = 1:3, lwd=1:3, lty=1:3) Thanks for the report and suggestion. Paul On 20/06/17 09:58, Paul Johnson wrote:> I was teaching new R users to make some fun graphs. I had some arrows examples > worked up we came across a problem. The arrows function ignores 2nd > and following elements of vectors given as code an angle. > > Would you please consider 1) allowing vectors for code and angle, or > 2) returning an error or warning when user mistakenly supplies a > vector for those parameters? When code like this is wrapped into an > Sweaved document--we I don't see the graph on the screen--this error > is difficult to catch while proofreading. > > Example: > > x0 <- c(-1, -4, 4.5) > y0 <- c(-1, -4, -8) > x1 <- c(2, -2, -3) > y1 <- c(4, 4, 18) > mylengths <- c(0.2, 0.3, 0.15) > mycodes <- c(3, 2, 1) > myangle <- c(10, 60, 80) > > plot(x = c(-5, 5), y = c(-10, 20), > type = "n", xlab = "", ylab = "") > > arrows(x0 = x0, y0 = y0, x1 = x1, y1 = y1, > length = mylengths, code = mycodes, angle = myangle) > > I found a workaround, but this is more difficult to explain to beginners... > > plot(x = c(-5, 5), y = c(-10, 20), > type = "n", xlab = "", ylab = "") > > mapply(arrows, x0 = x0, y0 = y0, x1 = x1, y1 = y1, > length = mylengths, angle = myangle, code = mycodes) > > pj >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
Reasonably Related Threads
- suggest enhancement to segments and arrows to facilitate horizontal and vertical segments
- documenation for arrows() is backwards (PR#7839)
- arrows()/log scale/clipping (?) (PR#1039)
- function arrows.circular not working
- panel.arrows problem in custom panel function