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

use*_*073 5 plot r

我试图绘制并保存我的矩阵使用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()
Run Code Online (Sandbox Code Playgroud)

Sim*_*lon 7

我要继续假设你在Windows上.png似乎WindowsGDI默认使用设备绘图.改为使用cairographics,设置type = "cario"......

png("heatmap.png",w=400,h=400 , type="cairo" )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

边界消失了.有关WindowsGDI设备出现这种情况的答案可能会在grDevices::windows帮助页面上找到...


Mar*_*box 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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述