Skip to content

reversing xlim, ylim in smoothScatter

2 messages · Shashikiran Ganesh, Martin Maechler

#
SG> Hello,
    SG> I have found that in smoothScatter it is not possible to reverse the axes plotted (R version 2.9.0) .?? It appears that this arises from the hard coding of xlim and ylim in smoothscatter.R in the lines :

    SG> x <- x[ xlim[1] <= x[,1] & x[,1] <=xlim[2], ]?? (line? number 25)

    SG> and 

    SG> x <- x[ ylim[1] <= x[,2] & x[,2] <= ylim[2], ]? (line number 31)

    SG> This results in a x being NA if ylim[1] > ylim[2] which results in an error on executing
    SG> ?map <- grDevices:::.smoothScatterCalcDensity(x, nbin, bandwidth)

    SG> To counter this problem, I replaced the above two lines by :
    SG> x <-x [min(xlim) <= x[,1] & x[,1] <= max(xlim), ]

    SG> and 
    SG> x <- x[min(ylim) <= x[,2] & x[,2] <= max(ylim), ]

    SG> and now smoothscatter reverses axes properly if xlim and/or ylim are provided with reversed ranges.?? 

    SG> I am wondering if this would break something somewhere else or if there is a better way to reverse the axes. ? ? (I am a newbie in R programming although I have been using R for some astronomical plots and computations etc...) 

No, I don't think your proposed change could create problems,
but to the contrary, I'd declare it as a simple bug fix,
so it will be part of the next versions of R,
thank you very much!

Martin Maechler, ETH Zurich

    SG> Thanks in advance for your comments!? 
    SG> Shashi
    SG> --
    SG> Shashikiran Ganesh 

    SG> http://www.prl.res.in/~shashi 

    SG> http://cosmicdiary.org/blogs/shashikiran_ganesh/
    SG> Registered linux user number: 39542 (http://counter.li.org)