當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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