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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。