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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。