2012-02-17 39 views
4

我建立了一個很好的情節與上一個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() 

回答

3

您也可以使用grid圖形來避開th OSE默認軸等

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

+0

巴蒂斯特:?有趣的方法,我將與 – Inferrator 2012-02-18 18:30:44

+0

玩好的,這個解決方案是完美的......但這個點命令是如何轉換爲網格點的點(xy,col =「#ff000012」,pch = 16,cex = 1)......好的,拿到了,那些參數去進入gpar – Inferrator 2012-02-18 18:47:01

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) 
+0

是不是mai而不是mar? – Inferrator 2012-02-17 17:11:19

+3

@ user1216731我相信不同的單位,同樣的事情。 「mai」以英寸表示,「mar」表示英寸。 – joran 2012-02-17 17:19:13

+0

我試過月選項,但它不工作:(。這將是不可能回答http://stackoverflow.com/questions/29828821/r-raster-avoid-white-space-when-plotting? – user2543622 2015-04-23 17:30:17

2

必須設置頁邊距:

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

我試過月選項,但它不工作:(這將是不可能回答http://stackoverflow.com/questions/29828821/r-raster-avoid-white-space-when-plotting – user2543622 2015-04-23 17:30:26

4

這裏是最好的解決方案。只是設置座標軸= 0

plot(1:10, axes = 0) 
+0

迄今爲止最簡單的解決方案 – 2016-09-26 20:24:09