Saptarshi Guha
2006-Dec-05 02:20 UTC
[R] A question on grid - grid.points not spaced properly
Hello, How can i 'fix' the following output. v=viewport(x=216/2, y=216/2,w=216, h=216,default.units = "bigpts") pushViewport(v) x=c(119,130,140,151) y=c(124,124,124,124) grid.points(x,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") grid.points(x-2,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") grid.points(x+2,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") grid.points(x,y-2,size=unit(1,"bigpts"),default.units="bigpts",pch=".") grid.points(x,y+2,size=unit(1,"bigpts"),default.units="bigpts",pch=".") One would expect to get a 4 figures composed of 5 dots each - 2 vertically spaced and 2 horizontally spaced symmetrically around the center dot. However i seem to get odd results - e.g on Quartz(OS X) output, the last command, places the dot bang next to the center dot. On 'jpeg' output with higest quality, this oddity happens with the 'x +2' command. This doesn't happen to all of the points, only some - and not necc. the edge figures. Is there anyway i can control this? Thanks Saptarshi Saptarshi Guha | sapsi at pobox.com | http://www.stat.purdue.edu/~sguha
Paul Murrell
2006-Dec-05 20:11 UTC
[R] A question on grid - grid.points not spaced properly
Hi Saptarshi Guha wrote:> Hello, > How can i 'fix' the following output. > > v=viewport(x=216/2, y=216/2,w=216, h=216,default.units = "bigpts") > pushViewport(v) > x=c(119,130,140,151) > y=c(124,124,124,124) > grid.points(x,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") > grid.points(x-2,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") > grid.points(x+2,y,size=unit(1,"bigpts"),default.units="bigpts",pch=".") > grid.points(x,y-2,size=unit(1,"bigpts"),default.units="bigpts",pch=".") > grid.points(x,y+2,size=unit(1,"bigpts"),default.units="bigpts",pch=".") > > > One would expect to get a 4 figures composed of 5 dots each - 2 > vertically spaced and 2 horizontally spaced symmetrically around the > center dot. > However i seem to get odd results - e.g on Quartz(OS X) output, the > last command, places the dot bang next to the center dot. > On 'jpeg' output with higest quality, this oddity happens with the 'x > +2' command. > > This doesn't happen to all of the points, only some - and not necc. > the edge figures. > > Is there anyway i can control this?I think you are seeing a rasterization effect. Both on screen and in a bitmap format you are essentially turning on a single pixel at a time. The locations you are giving do not necessarily correspond to an exact pixel location (bigpoints are in 1/72 inches, but your screen might have a resolution of 96 ppi) so you just get the nearest pixel to that location. So the gap you specify of two bigpoints sometimes comes out as 2 pixels, sometimes as 1 pixel (for example). For comparison, try running your code on a PDF (or other vector format) device; the result is much more what you are expecting I think. Paul> Thanks > Saptarshi > > Saptarshi Guha | sapsi at pobox.com | http://www.stat.purdue.edu/~sguha > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- 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/