当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R screen 在单个设备上创建和控制多个屏幕


R语言 screen 位于 graphics 包(package)。

说明

split.screen 定义了当前设备内的许多区域,这些区域在某种程度上可以被视为单独的图形设备。它对于在单个设备上生成多个绘图非常有用。屏幕本身可以分割,允许相当复杂的情节安排。

screen 用于选择在哪个屏幕上绘制。

erase.screen 用于清除单个屏幕,它通过填充背景颜色来实现。

close.screen 删除指定的屏幕定义。

用法

split.screen(figs, screen, erase = TRUE)
screen(n = , new = TRUE)
erase.screen(n = )
close.screen(n, all.screens = FALSE)

参数

figs

说明屏幕矩阵或 4 列矩阵中的行数和列数的二元素向量。如果是矩阵,则每行说明一个屏幕,其中包含以 NDC 单位表示的屏幕左下角、右下角和顶部(按此顺序)的值,即 0 位于设备表面的左下角,1 位于设备表面的左下角。右上角。

screen

给出要分割的屏幕的数字。如果有则默认为当前屏幕,否则为整个设备区域。

erase

逻辑:是否应该清除所选屏幕?

n

一个数字,指示哪个屏幕准备绘制 ( screen )、擦除 ( erase.screen ) 或关闭 ( close.screen )。 (close.screen 将接受屏幕编号向量。)

new

指示在屏幕上绘图准备过程中是否应擦除屏幕的逻辑值。

all.screens

指示是否应关闭所有屏幕的逻辑值。

细节

第一次调用split.screen地方R进入split-screen模式。其他split-screen函数仅在此模式下工作。在此模式下,应避免某些其他命令(请参阅下面的警告部分)。通过命令退出Split-screen模式close.screen(all = TRUE).

如果当前屏幕关闭,close.screen 将当前屏幕设置为下一个较大的屏幕编号(如果有),否则设置为第一个可用屏幕。

split.screen(*) 返回新创建屏幕的屏幕编号向量。如果不带参数,split.screen() 将返回有效屏幕编号的向量。

screen(n) 无形地返回 n ,即所选屏幕的编号。如果不带参数,screen() 返回当前屏幕的编号。

close.screen() 返回有效屏幕编号的向量。

screen,erase.screen, 和close.screen全部返回FALSE如果R不处于split-screen模式。

警告

使用这些函数的推荐方法是在选择并在另一个屏幕上绘制之前,完整绘制一个图以及基本图的所有添加内容(即点和线)。与返回屏幕以添加到现有绘图相关的行为是不可预测的,并且可能会导致不易察觉的问题。

这些函数与在设备上排列绘图的其他机制完全不兼容: par(mfrow)par(mfcol)layout()

这些函数也与某些绘图函数不兼容,例如使用这些其他机制的 coplot

如果背景颜色是透明的(大多数设备上默认情况下是透明的),erase.screen 将不起作用。

例子

if (interactive()) {
par(bg = "white")           # default is likely to be transparent
split.screen(c(2, 1))       # split display into two screens
split.screen(c(1, 3), screen = 2) # now split the bottom half into 3
screen(1) # prepare screen 1 for output
plot(10:1)
screen(4) # prepare screen 4 for output
plot(10:1)
close.screen(all = TRUE)    # exit split-screen mode

split.screen(c(2, 1))       # split display into two screens
split.screen(c(1, 2), 2)    # split bottom half in two
plot(1:10)                  # screen 3 is active, draw plot
erase.screen()              # forgot label, erase and redraw
plot(1:10, ylab = "ylab 3")
screen(1)                   # prepare screen 1 for output
plot(1:10)
screen(4)                   # prepare screen 4 for output
plot(1:10, ylab = "ylab 4")
screen(1, FALSE)            # return to screen 1, but do not clear
plot(10:1, axes = FALSE, lty = 2, ylab = "")  # overlay second plot
axis(4)                     # add tic marks to right-hand axis
title("Plot 1")
close.screen(all = TRUE)    # exit split-screen mode
}

参考

Chambers, J. M. and Hastie, T. J. (1992) Statistical Models in S. Wadsworth & Brooks/Cole.

Murrell, P. (2005) R Graphics. Chapman & Hall/CRC Press.

也可以看看

par , layout , Devices , dev.*

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Creating and Controlling Multiple Screens on a Single Device。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。