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


R print.trellis 绘制和总结网格对象


R语言 print.trellis 位于 lattice 包(package)。

说明

printplot 方法从 "trellis" 对象生成图形。 print 方法对于自动绘图是必需的。 plot 方法本质上是一个别名,为了方便而提供。 summary 方法给出对象的文本摘要。 dimdimnames 说明了由调节引起的cross-tabulation。 panel.error 是执行面板函数时发生错误时使用的默认处理程序。

用法

## S3 method for class 'trellis'
plot(x, position, split,
     more = FALSE, newpage = TRUE,
     packet.panel = packet.panel.default, 
     draw.in = NULL,
     panel.height = lattice.getOption("layout.heights")$panel,
     panel.width = lattice.getOption("layout.widths")$panel,
     save.object = lattice.getOption("save.object"),
     panel.error = lattice.getOption("panel.error"),
     prefix,
     ...)
## S3 method for class 'trellis'
print(x, ...)

## S3 method for class 'trellis'
summary(object, ...)

## S3 method for class 'trellis'
dim(x)
## S3 method for class 'trellis'
dimnames(x)

panel.error(e)

参数

x , object

"trellis" 的对象

position

由 4 个数字组成的向量,通常为 c(xmin, ymin, xmax, ymax),给出要在其中放置 x 的网格图的矩形的左下角和右上角。该矩形的坐标系在 x 和 y 方向上均为 [0-1]。

split

一个由 4 个整数组成的向量 c(x,y,nx,ny) ,表示将当前图定位在 nx x ny 图的常规数组中的 x,y 位置。 (注:原点位于左上角)

more

指定此页面上是否会出现更多绘图的逻辑。

newpage

指定绘图是否应位于新页面上的逻辑。此选项特定于晶格,对于在任意网格视口中包含晶格图非常有用(请参阅详细信息部分)。

packet.panel

确定哪个数据包(数据子集)绘制在哪个面板中的函数。面板总是按照列变化最快的顺序绘制,然后是行,然后是页面。给定列、行和页以及其他相关信息,此函数确定应在该面板中使用的数据包(如果有)。默认情况下,关联是通过将面板顺序与数据包顺序相匹配来确定的,而数据包顺序是通过改变第一个条件变量最快,然后是第二个,依此类推来确定的。此关联规则在默认值中进行编码,即函数 packet.panel.default ,其帮助页面详细介绍了提供给指定为 packet.panel 参数的函数的参数。

draw.in

要在其中绘制绘图的可选(网格)视口(用作 downViewport 中的 name 参数)。如果指定,则忽略 newpage 参数。此函数不是well-tested。

panel.width , panel.height

包含 2 个组件的列表,它们应该是 unit() 的有效 xunits 参数(当前无法指定 data 参数,但如果需要,可以考虑添加)。生成的 unit 对象将是点阵图中每个面板的宽度/高度。这些参数可用于显式控制面板的尺寸,而不是让它们扩展以最大化可用空间。允许向量宽度,并且可以指定跨行或列的不等长度。

请注意,此选项不应与原始高级调用中的 aspect 参数的非默认值结合使用(不会产生错误,但结果行为未定义)。

save.object

逻辑,指定是否保存正在打印的对象。随后可以检索如此保存的最后一个对象。这是一个实验性函数,应该允许在绘图完成后访问面板的数据,从而可以在事后增强绘图。这还允许用户在当前绘图上调用 update 方法,即使它没有显式分配给变量。有关更多详细信息,请参阅trellis.focus

panel.error

执行面板函数期间发生错误时要执行的函数或命名函数的字符串。错误被捕获(使用 tryCatch )并作为唯一参数提供给 panel.error 。默认行为(作为 panel.error 函数实现)是在面板中打印相应的错误消息并继续。要在出错时停止执行,请使用 panel.error = stop

当使用 tryCatch 时,普通的错误恢复和调试工具没有帮助。通过将panel.error设置为NULL可以完全绕过tryCatch

prefix

用作标识绘图的前缀的字符串"trellis"对象,主要用于构建视口和grob名称,以在页面包含多个绘图时区分相似的视口。默认值基于当前页面上当前绘图的序列号(具体来说,"plot_01","plot_02", ETC。)。如果明确提供,这必须是有效的R符号名称(简单来说,它必须以字母或句点后跟字母开头)并且不得包含网格路径分隔符(目前"::")。

e

tryCatch 捕获的错误情况

...

额外的参数,被 print 方法忽略。 plot 方法的所有参数都传递给 print 方法。

细节

这是 "trellis" 类对象的默认打印方法,通过调用 xyplotbwplot 等函数生成。它通常在生成网格对象时自动调用。还可以通过参数 splitposition 显式调用它来控制绘图定位。

newpage = FALSE 时,当前网格视口被视为绘图区域,从而可以将点阵图嵌入任意网格视口内。 draw.in 参数提供了一种可能更易于使用的替代机制。

print 方法使用 x(要打印的对象)中的信息通过 Grid 图形引擎生成显示。该图的核心是网格布局,其中用户最感兴趣的条目是包含显示面板的条目。

与旧版本的 Lattice(和 Grid)不同,网格显示树在生成绘图后保留,从而可以访问各个视口位置并向绘图添加内容。有关更多详细信息和这些视口的晶格级接口,请参阅trellis.focus

注意

与 S-PLUS 不同,尝试定位多页显示(使用 position 和/或 split )会将事情搞砸。

例子


p11 <- histogram( ~ height | voice.part, data = singer, xlab="Height")
p12 <- densityplot( ~ height | voice.part, data = singer, xlab = "Height")
p2 <- histogram( ~ height, data = singer, xlab = "Height")


## simple positioning by split
print(p11, split=c(1,1,1,2), more=TRUE)
print(p2, split=c(1,2,1,2))

## Combining split and position:
print(p11, position = c(0,0,.75,.75), split=c(1,1,1,2), more=TRUE)
print(p12, position = c(0,0,.75,.75), split=c(1,2,1,2), more=TRUE)
print(p2, position = c(.5,.75,1,1), more=FALSE)

## Using seekViewport

## repeat same plot, with different polynomial fits in each panel
xyplot(Armed.Forces ~ Year, longley, index.cond = list(rep(1, 6)),
       layout = c(3, 2),
       panel = function(x, y, ...)
       {
           panel.xyplot(x, y, ...)
           fm <- lm(y ~ poly(x, panel.number()))
           llines(x, predict(fm))
       })

## Not run: 
grid::seekViewport(trellis.vpname("panel", 1, 1))
cat("Click somewhere inside the first panel:\n")
ltext(grid::grid.locator(), lab = "linear")

## End(Not run)

grid::seekViewport(trellis.vpname("panel", 1, 1))
grid::grid.text("linear")

grid::seekViewport(trellis.vpname("panel", 2, 1))
grid::grid.text("quadratic")

grid::seekViewport(trellis.vpname("panel", 3, 1))
grid::grid.text("cubic")

grid::seekViewport(trellis.vpname("panel", 1, 2))
grid::grid.text("degree 4")

grid::seekViewport(trellis.vpname("panel", 2, 2))
grid::grid.text("degree 5")

grid::seekViewport(trellis.vpname("panel", 3, 2))
grid::grid.text("degree 6")

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

Lattice , unit , update.trellis , trellis.focus , packet.panel.default

相关用法


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