无法摆脱一个像素宽的白色边缘(底部和右侧)的情节

时间:2013-10-14 08:38:09

标签: r plot

我试图使用image()绘制并保存我的矩阵,没有轴,标签,边距等。我需要的只是纯彩色图像,其中单元格的数量将与保存的绘图上的像素数量相对应。在R图形设备上它看起来很好,但是如果我将绘图保存到文件中,那么在图像的底部和右侧始终存在一个像素宽的白色边距。我尝试了所有格式但没有成功。我正在使用GIMP进行图像处理。

示例代码:

png("heatmap.png",w=400,h=400)
par(mar = c(0,0,0,0))
require(grDevices) # for colours
x <- y <- seq(-4*pi, 4*pi, len=400)
r <- sqrt(outer(x^2, y^2, "+"))
image(z = z <- cos(r^2)*exp(-r/6), col=gray((0:32)/32),axes = FALSE)
dev.off()

2 个答案:

答案 0 :(得分:7)

我要继续并假设你在Windows上。 png似乎默认情况下使用WindowsGDI设备进行绘图。通过设置type = "cario" ...

来改为使用cairographics
png("heatmap.png",w=400,h=400 , type="cairo" )

enter image description here

边界消失了。关于WindowsGDI设备发生这种情况的原因的答案可能会在grDevices::windows帮助页面上找到...

答案 1 :(得分:3)

通过使用参数useRaster=TRUE,问题得以解决:

png("heatmap.png",w=400,h=400)
par(mar = c(0,0,0,0))
require(grDevices) # for colours
x <- y <- seq(-4*pi, 4*pi, len=400)
r <- sqrt(outer(x^2, y^2, "+"))
z <- cos(r^2)*exp(-r/6)
image(z, col=gray((0:32)/32), axes=FALSE, useRaster=TRUE)
dev.off()

enter image description here