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


R trellis.par.get 網格顯示的圖形參數


R語言 trellis.par.get 位於 lattice 包(package)。

說明

用於查詢、顯示和修改圖形參數以精細控製網格顯示的函數。僅對當前活動設備的設置進行修改。

用法

trellis.par.set(name, value, ..., theme, warn = TRUE, strict = FALSE)
trellis.par.get(name = NULL)
show.settings(x = NULL)

參數

name

給出組件名稱的字符串。如果在 trellis.par.get() 中未指定,則返回值是包含所有當前設置的命名列表(這可用於獲取 name 的有效值)。

value

給出組件所需值的列表。已定義為當前設置的一部分但 value 中未提及的組件將保持不變。

theme

說明如何更改設置的列表,類似於 trellis.par.get() 返回的內容。這純粹是為了方便,允許將 trellis.par.set 的多個調用壓縮為一個。每個組件的名稱必須是如上所述的有效name,相應的值必須是如上所述的有效value

trellis.device 一樣,theme 也可以是在調用時生成此類列表的函數。函數名稱可以作為帶引號的字符串提供。

...

可以在 name = value 形式中指定多個設置。相當於用theme = list(...)調用

warn

邏輯標誌,指示在沒有打開圖形設備的情況下調用trellis.par.get時是否應發出警告。

strict

通常是一個邏輯標誌,指示是否應該嚴格解釋value。通常,對相應命名組件的值分配是模糊的,即 value 中不存在但當前 NULL 中不存在的 sub-components 被保留。通過指定 strict = TRUE ,此類值將被刪除。

通過將 strict 指定為大於 1 的數值,可以進行更嚴格的解釋。在這種情況下,調用中未指定的頂級組件也將被刪除。這主要供內部使用。

x

更改設置的組件的可選列表(theme 的任何有效值)。這些用於在顯示之前修改當前設置(由 trellis.par.get 獲得)。

細節

控製網格顯示的外觀和感覺的各種圖形參數(顏色、線條類型、背景等)是高度可定製的。此外,R 可以在多種設備上生成圖形,並且預計不同的參數集將更適合不同的設備。這些參數內部存儲在名為 lattice.theme 的變量中,該變量是一個列表,其組件定義特定設備的設置。這些組件由它們所代表的設備名稱(通過 .Device 獲得)進行標識,並在第一次使用 trellis.device 打開新設備時創建(或者在設備上繪製點陣圖)該會議中的第一次)。

每個設備的初始設置默認為適合該設備的值。在實踐中,這可以歸結為三種不同的設置,一種用於屏幕設備,如 x11windows ,一種用於黑白圖(主要用於 postscript ),一種用於彩色打印機(顏色 postcriptpdf )。

一旦設備打開,就可以修改其設置。當稍後使用 trellis.device 打開同一設備的另一個實例時,該設備的設置將重置為其默認值,除非在 trellis.device 調用中另有指定。但不同設備的設置是分開處理的,即打開 postscript 設備不會更改 x11 設置,隻要 x11 設備處於活動狀態,該設置就會保持有效。

函數 trellis.par.* 是全局設置的接口。它們始終應用於當前活動設備的設置。

trellis.par.get 調用時不帶任何參數,返回活動設備的完整設置列表。當存在 name 參數時,它僅返回該組件。 trellis.par.get 將當前活動設備設置的 name 組件的值設置為 value

trellis.par.get 通常在網格函數內部使用,以在繪圖之前獲取圖形參數。用戶通過 trellis.par.set 進行的修改通常按如下方式完成:

add.line <- trellis.par.get("add.line")

add.line$col <- "red"

trellis.par.set("add.line", add.line)

更方便(但不兼容 S)的方法是

trellis.par.set(list(add.line = list(col = "red")))

trellis.par.set(add.line = list(col = "red"))

trellis.settings 中組件的實際列表尚未最終確定,因此我不會嘗試在此處列出它們。當前值可以通過 print(trellis.par.get()) 獲取。大多數名稱應該是不言自明的。

show.settings 提供圖形顯示,總結當前設置中的一些值。

trellis.par.get 返回一個列表,給出該組件的參數。如果 name 丟失,則返回完整列表。

大多數設置是控製點陣圖各個元素的圖形參數。有關詳細信息,請參閱下麵的示例。這裏說明了更不尋常的設置。

grid.pars

除非被特定設置覆蓋,否則全局有效的網格圖形參數。

fontsize

兩個組件(每個組件都是數字標量)的列表, textpoints 分別用於文本和符號。

clip

兩個組件的列表(每個組件都是字符串, "on""off" ): panelstrip

axis.components

包含四個組件的列表( lefttoprightbottom ),每個列表為相應的網格布局單元提供名為 tckpad1pad2 的數字乘數。

layout.heights

包含網格布局高度數字乘數的列表。

layout.widths

包含網格布局寬度數字乘數的列表。

注意

在某些方麵,trellis.par.gettrellis.par.set 一起替代了傳統 R 圖形中使用的 par 函數。特別是,更改 par 設置對晶格輸出影響很小(如果有的話)。由於點陣圖是使用網格圖形實現的,因此其參數係統確實會產生影響,除非被合適的點陣參數設置覆蓋。通過將此類參數包含在 grid.pars 組件中,可以將其指定為點陣主題的一部分(有關有效參數名稱的列表,請參閱 gpar)。

例子

show.settings()

tp <- trellis.par.get()

unusual <- c("grid.pars", "fontsize", "clip", "axis.components",
             "layout.heights", "layout.widths")

for (u in unusual) tp[[u]] <- NULL
names.tp <- lapply(tp, names)
unames <- sort(unique(unlist(names.tp)))
ans <- matrix(0, nrow = length(names.tp), ncol = length(unames))
rownames(ans) <- names(names.tp)
colnames(ans) <- unames
for (i in seq(along = names.tp))
    ans[i, ] <- as.numeric(unames %in% names.tp[[i]])
ans <- ans[, order(-colSums(ans))]
ans <- ans[order(rowSums(ans)), ]
ans[ans == 0] <- NA

levelplot(t(ans), colorkey = FALSE, 
          scales = list(x = list(rot = 90)),
          panel = function(x, y, z, ...) {
              panel.abline(v = unique(as.numeric(x)), 
                           h = unique(as.numeric(y)), 
                           col = "darkgrey")
              panel.xyplot(x, y, pch = 16 * z, ...)
          },
          xlab = "Graphical parameters", 
          ylab = "Setting names")

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

trellis.device , Lattice , gpar

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Graphical Parameters for Trellis Displays。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。