完全没有边框的情节

时间:2012-02-17 16:44:10

标签: r plot

我在png图像文件上设置了一个带有透明叠加散点图的漂亮绘图。我希望我的绘图窗口和我的pdf输出与我的png-962x745完全相同。

然而,即使在关闭轴,注释和帧之后,R仍然会在图像周围留下边框。

这可以通过一个简单的例子来显示:该图显示了两个点,它们应位于图的最外端。但他们不是:

plot(rbind(c(1,745),c(962,1)),bty ="n",axes=F,frame.plot=F, xaxt='n', ann=FALSE, yaxt='n', asp=745/962)

与PDF设备一起:

pdf(width=10.02,height=7.76)
par(mar=rep(0, 4),mai=rep(0, 4), xpd = NA) 
plot(rbind(c(1,745),c(962,1)),bty ="n",axes=F,frame.plot=F, xaxt='n', ann=FALSE, yaxt='n', asp=745/962)
dev.off()

5 个答案:

答案 0 :(得分:6)

尝试:

par(mar=rep(0, 4), xpd = NA) 
plot(rbind(c(1,745),c(962,1)),bty ="n",axes=F,frame.plot=F, xaxt='n', ann=FALSE, yaxt='n', asp=745/962)

答案 1 :(得分:4)

这是最好的解决方案。只需设置axes = 0

plot(1:10, axes = 0)

答案 2 :(得分:3)

您还可以使用grid图形来避免这些默认轴等。

library(jpeg)
library(grid)

d = data.frame(x=rnorm(100, 10), y=rnorm(100, -100))
utils::download.file("http://i.imgur.com/5MexD.jpg", "img.jpg")
img = readJPEG("img.jpg")


w <- convertUnit(unit(ncol(img),"pt"), "in", value=TRUE)
h <- convertUnit(unit(nrow(img),"pt"), "in", value=TRUE)

dev.new(width=w, height=h)    
grid.raster(img, width=unit(1,"npc"), height=unit(1,"npc"))

 v = dataViewport(xData=d$x, yData=d$y)
 grid.points(d$x,d$y, default.units="native", vp=v, 
             gp=gpar(col="white"), pch=8)

enter image description here

答案 3 :(得分:2)

您必须设置边距:

par(mar=c(0,0,0,0))

答案 4 :(得分:0)

我在这个问题上苦苦挣扎,box = FALSE为我工作。

示例:


img_03 = na.omit(img_02)

png(file = paste("ndvi",".png",sep=""), bg = "transparent")

plot(img_03,
  legend=FALSE,
  axes = 0,
  frame.plot=0,
  box = FALSE,
  useRaster=0,
  col = hcl.colors(100, "RdYlGn")
)

dev.off()