dev2 位於 grDevices 包(package)。 說明
dev.copy 將當前設備的圖形內容複製到which 指定的設備或device 指定的函數創建的新設備中。 (同時指定 which 和 device 是錯誤的)。 (如果當前設備上的記錄關閉,則沒有要複製的內容:這將導致沒有繪圖或空繪圖。)複製到的設備將成為當前設備。
dev.print將當前設備的圖形內容複製到device指定的函數創建的新設備中,然後關閉新設備。
dev.copy2eps 與 dev.print 類似,但會生成縱向 EPSF 輸出文件 ( horizontal = FALSE )。 dev.copy2pdf 是 PDF 輸出的模擬。
dev.control 允許用戶控製設備中圖形操作的記錄。如果 displaylist 是 "inhibit" ( "enable" ),則記錄將關閉(打開)。隻有在繪圖開始時(新頁麵之前或之後)更改此設置才是安全的。最初記錄對於屏幕設備是打開的,對於打印設備是關閉的。
用法
dev.copy(device, ..., which = dev.next())
dev.print(device = postscript, ...)
dev.copy2eps(...)
dev.copy2pdf(..., out.type = "pdf")
dev.control(displaylist = c("inhibit", "enable"))
參數
device |
設備函數(例如, |
... |
上述 |
which |
指定要複製到的設備的設備號。 |
out.type |
輸出設備的名稱:可以是 |
displaylist |
字符串:唯一有效值為 |
細節
請注意,這些函數複製設備區域而不是繪圖:設備表麵的背景顏色是複製內容的一部分。大多數屏幕設備默認為透明背景,這可能不是複製到 png 等設備時所需要的。
對於dev.copy2eps和dev.copy2pdf,除非另有說明,width和height均取自當前設備。如果僅指定 width 和 height 之一,則調整另一個以保留正在複製的設備的寬高比。默認文件名是 Rplot.eps 或 Rplot.pdf ,可以通過指定 file 參數覆蓋。
複製到設備,例如postscript和pdf需要預先指定字體係列的需要額外小心 -R不知道情節中使用了哪些家庭,因此他們需要由fonts作為一部分傳遞的論點...。同樣,如果要複製的設備是用family論證,合適的family參數需要包含在....
dev.print 的默認設置是生成並打印 postscript 副本。除非 options("printcmd") 設置適當並且您有 PostScript 打印係統,否則此函數不會起作用:請參閱 postscript 了解如何設置。 Windows 用戶可能更喜歡使用 dev.print(win.print) 。
當滿足以下條件時,dev.print 對於生成 postscript 打印(默認)最有用。除非指定 file,否則將打印該圖。除非指定 width 、 height 和 pointsize ,否則繪圖尺寸將從當前設備中獲取,必要時縮小以適合紙張。 (如果繪圖縮小,pointsize 將重新縮放。)如果未指定 horizontal,並且可以通過切換其值以完整尺寸打印繪圖,則執行此操作而不是縮小繪圖區域。
如果 dev.print 與指定的 device (甚至 postscript )一起使用,則它以與 dev.copy2eps 相同的方式設置寬度和高度。除非設備指定以英寸為單位的尺寸,否則這是不合適的,特別是不適用於 png 、 jpeg 、 tiff 和 bmp ,除非指定了 units = "inches" 。
值
dev.copy 返回已複製到的設備的名稱和編號。
dev.print 、 dev.copy2eps 和 dev.copy2pdf 返回從中複製的設備的名稱和編號。
注意
大多數設備(包括所有屏幕設備)都有一個顯示列表,記錄設備中發生的所有圖形操作。 dev.copy 通過將顯示列表從一個設備複製到另一個設備來複製圖形內容。此外,調整設備大小後圖形內容的自動重繪取決於顯示列表的內容。
命令dev.control("inhibit")之後,圖形操作不會記錄在顯示列表中,因此dev.copy和dev.print不會複製任何內容,並且如果設備大小調整,設備的內容也不會自動重繪。
就內存而言,記錄圖形操作相對昂貴,因此如果內存使用存在問題,命令 dev.control("inhibit") 可能會很有用。
例子
## Not run:
x11() # on a Unix-alike
plot(rnorm(10), main = "Plot 1")
dev.copy(device = x11)
mtext("Copy 1", 3)
dev.print(width = 6, height = 6, horizontal = FALSE) # prints it
dev.off(dev.prev())
dev.off()
## End(Not run)
也可以看看
dev.cur 和其他dev.xxx 函數。
相關用法
- R dev2bitmap 通過 Ghostscript 用於位圖文件的圖形設備
- R dev.interactive 當前圖形設備是否具有交互性?
- R dev.capture 將設備輸出捕獲為光柵圖像
- R dev.size 查找設備表麵的尺寸
- R dev.flush 保持或刷新屏幕圖形設備上的輸出
- R dev 控製多個設備
- R devAskNewPage 新頁麵前提示
- R dev.capabilities 查詢當前圖形設備的能力
- R densCols 平滑密度圖的顏色
- R axisTicks 計算漂亮的軸刻度
- R hcl HCL 顏色規格
- R quartzFonts 石英字體
- R as.graphicsAnnot 強製圖形注釋對象
- R xyTable (x,y) 點的重數,例如,對於向日葵圖
- R chull 計算一組點的凸包
- R convertColor 在色彩空間之間轉換
- R X11Fonts X11 字體
- R plotmath R 中的數學注釋
- R pdf.options 設置/查看 pdf 參數默認值的輔助函數
- R windows Windows 圖形設備
- R rgb RGB 顏色規格
- R check.options 設置帶有一致性檢查的選項
- R msgWindow 操縱窗口
- R n2mfrow 根據繪圖數計算默認“mfrow”
- R hsv HSV 顏色規格
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Copy Graphics Between Multiple Devices。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
