2013-03-28 50 views
2

这正常工作产生图像,创建填充窗口的图像:rasterImage()中的R具有白色边框

z <- matrix(runif(500*500), ncol=500) 
par(mar=c(0,0,0,0)) 
image(z, col=grey(0:255/255),zlim=c(0,1)) 

但rasterImage()把边框围绕图像,即使我设置页边距来零:

z <- matrix(runif(500*500), ncol=500) 
par(mar=c(0,0,0,0)) 
plot.new() 
rasterImage(z,0,0,1,1,interpolate=FALSE) 

我一直在使用积()和月()参数试过各种修正。请告诉我如何在使用rasterImage()时摆脱边界。

我正在使用Windows 7,如果这很重要。非常感谢您的帮助。

+0

这不是解决上述问题的办法,而是一种解决方法。一个参数useRaster最近已经添加到image()中,并且它将执行与rasterImage相同的操作,即使用位图而不是多边形创建图像:image(z,col = gray(0:255/255),zlim = c(0,1),useRaster = TRUE) –

+0

+1是一个很好的,可重现的例子。 –

回答

2

看起来你需要略微过度填充阴谋区域。这感觉就像一个黑客,但它的作品。我不知道为什么会发生,但观察的区别...

par(mar=c(0,0,0,0)) 
plot.new() 
rasterImage(z,-0.03,-0.03,1.03,1.03,interpolate=FALSE) 

...给出了一个很窄的白色边框。并且...

par(mar=c(0,0,0,0)) 
plot.new() 
rasterImage(z,-0.04,-0.04,1.04,1.04,interpolate=FALSE) 

...在边界右边的边上绘制图。有某种扩张因素在某处引入,但这种情况反映了它。仔细看照片上的边框。 rasters

+0

谢谢Simon!你的回答指出我的方向是正确的。解决方法是:par(mar = c(0,0,0,0),xaxs ='i',yaxs ='i')。 xaxs和yaxs参数迫使R使用我想要的实际限制(即0,1)而不填充它们。 –

+0

@BillSimpson完美。我会将这个问题加入书签,因为我将不可避免地发现在未来知道这一点非常有用!干杯比尔。 –

+0

甜美的回答家伙,海拉有用。 – efbbrown