我想将绘图从svg设备复制到网格对象。
grid.echo()
文档说它回显当前设备,但使用网格图形绘制。
但是,以下操作无效:
svg()
plot(1:10)
print(dev.cur())
grid.echo()
a = grid.grab()
dev.off()
print(dev.cur())
grid.draw(a)
上面的打印输出是:
svg
2
null device
1
Warning message:
In grid.echo.recordedplot(recordPlot(), newpage, prefix, device) :
No graphics to replay
如您所见,当前设备是在调用grid.echo()
之前的svg设备,但是仍然找不到要回显的东西。因此,`grid.grab()返回的a
为空。我已经尝试过使用pdf设备进行相同的操作,但没有成功。
我在做什么错了?
答案 0 :(得分:1)
这是您的预期行为吗?
library(gridGraphics)
svg()
plotfun <- function() plot(1:10)
print(dev.cur())
grid.echo(plotfun)
a = grid.grab()
dev.off()
print(dev.cur())
grid.draw(a)