Skip to content
Prev 387811 / 398502 Next

graphics useRaster check_irregular definition for date or posix

Hi Paul

Thanks for the FAQs related to the unwanted white lines. However, even
if it is just the png/pdf viewer that causes the white lines, I would
like to try to avoid them as much as possible, and setting useRaster to
true does that.

My wish would be that I can use a date or POSIX* vector as x and/or y
axis as it is without using some numerical values instead and then
always need to take special care for the corresponding labels.
Particularly for date/POSIX* objects this can be annoying. So the axes
or their labels are not my problem, I just need the useRaster true or
false decision to be consistent.

How do you deduce that the diff of the midpoints (i.e. the modifided x)
is not "regular"? This, again, will be decided later in image.default()
by check_irregular(), what brings us back to my initial post?

Cheers,
Chris

Am 15.04.2021 03:26 schrieb Paul Murrell:
doubt it is intended (to deliberately exclude "difftime" objects). Can you please supply a full image() example (with 'x' and/or 'y' as Dates and a 'z') ? So that I can see what ... image(x, y, z, useRaster=FALSE) ... looks like, so I can see what you want ... image(x, y, z, useRaster=TRUE) ... to look like. I also wonder whether switching to ... dx[1][rep(1, length(dx))] ... might be better than switching to ... as.numeric(dx) It produces the same result for "difftime" objects, and may have a better chance of working better with other objects (although I confess that not having thought of using a "difftime" for 'x' I am also failing to think of further possibilities for 'x'). Paul On 14/04/21 3:11 am,cdanek at posteo.de <mailto:cdanek at posteo.de> wrote: Hi The function `check_irregular()` defined within `graphics::image.default()` checks if the `useRaster` argument for `graphics::image()` can be true or must be false. According to this function, the following example vector is
irregular: ``` time <- seq(as.Date("2020-1-1"), as.Date("2020-12-31"), l=12) check_irregular(time, time) # TRUE ``` In my view, this is not correct. In this case, the `all.equal`-call does not evaluate to true due to the special class of `dx` (or `dy`). If I slightly rewrite the function as ``` my_check_irregular <- function (x, y) { dx <- as.numeric(diff(x)) dy <- as.numeric(diff(y)) (length(dx) && !isTRUE(all.equal(dx, rep(dx[1], length(dx))))) || (length(dy) && !isTRUE(all.equal(dy, rep(dy[1], length(dy))))) } ``` the correct answer is obtained (i.e. that the input vector is not irregular based on the rational behind `all.equal`): ``` my_check_irregular(time, time) # FALSE ``` The same applies to POSIX* objects. I was wondering if this is intended or not? Thanks a lot for any answer, Chris [[alternative HTML version deleted]] ______________________________________________ R-help at r-project.org <mailto:R-help at r-project.org> mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help [2] <https://stat.ethz.ch/mailman/listinfo/r-help [2]> <https://stat.ethz.ch/mailman/listinfo/r-help [2] <https://stat.ethz.ch/mailman/listinfo/r-help [2]>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html [3] <http://www.R-project.org/posting-guide.html [3]> <http://www.R-project.org/posting-guide.html [3] <http://www.R-project.org/posting-guide.html [3]>> and provide commented, minimal, self-contained, reproducible code.
 

Links:
------
[1]
http://cran.stat.auckland.ac.nz/doc/FAQ/R-FAQ.html#Why-are-there-unwanted-borders
[2] https://stat.ethz.ch/mailman/listinfo/r-help
[3] http://www.R-project.org/posting-guide.html