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


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