簡體   English   中英

使用 grid.echo() 從非默認設備復制繪圖

[英]Copy plot with grid.echo() from non-default device

我想將繪圖從 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 設備,但它仍然沒有找到任何可以回顯的內容。 a由`grid.grab()返回因此空。 我用 pdf 設備嘗試過同樣的事情,但沒有成功。

我究竟做錯了什么?

這是您預期的行為嗎?

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM