[Rd] png() and image()
Hin-Tak Leung
hin-tak.leung at cimr.cam.ac.uk
Fri Jul 21 18:45:40 CEST 2006
By changing
png("large.png", height=nrow(z), width=ncol(z), bg="red")
to
png("large.png", height=nrow(z), width=ncol(z), bg="blue")
I can get the right column (on linux) to change to blue.
So it seems to be an alignment off-by-one error with the background
colour showing through, so you might be able to work around it
by changing the alignment of the margins.
Incidentally I am working on the AffyMetrix 500k chip as well
(http://www.wtccc.org.uk/) but I have already written a non-R C/C++
tool to dump all the probe signal of a whole array as an image
(not intended for html, obviously, for 6.5 million probes); and
another one for drawing the schematics of the locations of
probes associated with a specific snp as a postscript vector diagram.
I will probably be working on combining the two - i.e. overlaying
an image with a vector diagram next week. (which means I hope to get
an image of intensities with some cicles on top, highlighting the
effect on the intensities to a specific snp due to blemishes).
Hin-Tak Leung
Henrik Bengtsson wrote:
> Hi,
>
> I try to create PNG images of a certain size where each pixel
> intensity corresponds to exactly one probe signal in an Affymetrix
> array. I try to use png() and image() with zero margins to do this.
> Example:
>
> z <- matrix(1:15, nrow=45, ncol=30)
> png("large.png", height=nrow(z), width=ncol(z), bg="red")
> par(mar=c(0,0,0,0))
> image(z, col=gray.colors(16), axes=FALSE)
> dev.off()
>
> z <- matrix(1:15, nrow=5, ncol=3)
> png("tiny.png", height=nrow(z), width=ncol(z), bg="red")
> par(mar=c(0,0,0,0))
> image(z, col=gray.colors(16), axes=FALSE)
> dev.off()
>
> The problem is that on WinXP the very bottom row and the very right
> column of pixels in red. Trying on Linux, it is only the very right
> column that is red. See attached images (you might have to zoom in to
> see it). I try to do this in R v2.3.1. The same effect is seen if
> the jpeg() device is used.
>
> When rescaling, the same effect is seen (the red border effect is one
> pixel wide), e.g.
>
> z <- matrix(1:15, nrow=45, ncol=30)
> png("large5.png", height=5*nrow(z), width=5*ncol(z), bg="red")
> par(mar=c(0,0,0,0))
> image(z, col=gray.colors(16), axes=FALSE)
> dev.off()
>
> I might be asking for something that is not supported, but is there a
> way around this? It is a problem, because I wish to tile the images
> in an HTML page.
>
> Thanks
>
> Henrik
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
More information about the R-devel
mailing list