Prof Brian Ripley wrote: > On Thu, 20 Oct 2005 [EMAIL PROTECTED] wrote: > > >>On 10/20/2005 12:41 PM, [EMAIL PROTECTED] wrote: >> >>>Full_Name: Barry Rowlingson >>>Version: 2.2.0 >>>OS: Linux >>>Submission from: (NULL) (194.80.32.8) >>> >>> >>>The image function with a matrix of all NA values fails with: >>> >>> >>>>xyz=list(x=1:3,y=1:4,z=matrix(NA,3,4)) >>>>image(xyz) >>> >>>Error in image.default(xyz) : invalid z limits >>>In addition: Warning messages: >>>1: no finite arguments to min; returning Inf >>>2: no finite arguments to max; returning -Inf >>> >>>Image can handle any number of NAs as long as there is at least one data >>>value: >>> >>> >>>>xyz=list(x=1:3,y=1:4,z=matrix(c(1,rep(NA,11)),3,4)) >>>>image(xyz) >>> >>> and shows NAs as transparent. However if it is all NAs then the z-limit >>>calculation breaks down as above. >>> >>> It seems reasonable to me that image() with all NAs should produce a >>>completely transparent/empty image (after displaying the axes if add!=TRUE) >>>and >>>not fail with an error. >> >>I agree, though I think the warnings are reasonable and a fix shouldn't >>remove them. However, I'm not sure what the fix should be. There's a >>test in image.default >> >> if (any(!is.finite(zlim)) || diff(zlim) < 0) >> stop("invalid z limits") >> >> >>that is throwing the error. We want the error if a user specifies >>diff(zlim) < 0 or non-finite z limits, we just don't want it if all the >>z's are NA. But a test all(is.na(z)) looks a bit expensive for such a >>rare case. > > > It is not actually documented that zlim can be omitted (something we need > to fix too). Why not just add a check for zlim not being missing to that > test?
Works fine, thanks for the suggestion. I'll commit if you haven't already. Duncan Murdoch Duncan ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel