2013-10-24 18 views
2
的PNG/JPEG/SVG/TIFF/BMP設備

我只是想挽救一個情節到一個文件,它看起來像它沒有一個整體R系列設備:任何問題R中

getgrob = function(x, y) { 
    require(grid) 
    x = 1:10 
    y = rnorm(10) 
    plotvp = plotViewport(c(5, 5, 3, 3), name='plotvp') 
    datavp = dataViewport(x, y, name='datavp') 
    datapts = pointsGrob(
         x, y, pch=20, 
         size=unit(2.3, 'mm'), 
         name='datapts', 
         gp=gpar(col='black') 
         ) 
    xaxis = xaxisGrob() 
    yaxis = yaxisGrob() 
    xlab = textGrob('X Label', y=unit(-3, 'lines'), name='xlab') 
    ylab = textGrob('Y Label', x=unit(-3, 'lines'), rot=90, name='ylab') 
    plotbox = rectGrob() 
    dataplot = gTree(children=gList(datapts, 
            xaxis, yaxis, 
            xlab, ylab, 
            plotbox), 
        vp=datavp, name='dataplot') 
    wholeplot = gTree(children=gList(dataplot), 
         vp=plotvp, name='wholeplot') 
    wholeplot 
} 

pdf('/tmp/a.pdf') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 
png('/tmp/a.png') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 
jpeg('/tmp/a.jpg') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 
tiff('/tmp/a.tiff') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 
bmp('/tmp/a.bmp') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 
svg('/tmp/a.svg') 
mygrob = getgrob(1:10, rnorm(10)) 
grid.draw(mygrob) 
dev.off() 

我得到的是一個空白區域與軸和扁蝨:

enter image description here

但PDF設備仍然有效。我在這裏錯過了什麼嗎?

這裏是版本信息:

R version 3.0.1 (2013-05-16) -- "Good Sport" 
Copyright (C) 2013 The R Foundation for Statistical Computing 
Platform: x86_64-pc-linux-gnu (64-bit) 

回答

3

不同的設備具有用於gpar參數不同的默認值;特別是rectGrob可能是白色或透明的。嘗試先繪製它,而不是最後一個,或明確指定fill = NA:rectGrob(gp=gpar(fill=NA))