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


R panel.xyplot xyplot 的默认面板函数


R语言 panel.xyplot 位于 lattice 包(package)。

说明

这是xyplot 的默认面板函数。另请参阅panel.superposesplomqq 的默认面板函数本质上是相同的函数。

用法

panel.xyplot(x, y, type = "p",
             groups = NULL,
             pch, col, col.line, col.symbol,
             font, fontfamily, fontface,
             lty, cex, fill, lwd,
             horizontal = FALSE, ...,
             smooth = NULL,
             grid = lattice.getOption("default.args")$grid,
             abline = NULL,
             jitter.x = FALSE, jitter.y = FALSE,
             factor = 0.5, amount = NULL,
             identifier = "xyplot")
panel.splom(..., identifier = "splom")
panel.qq(..., identifier = "qq")

参数

x , y

要在散点图中绘制的变量

type

控制如何绘制 xy 的字符向量。可以包含以下一项或多项: "p" , "l" , "h" , "b" , "o" , "s" , "S" , "g" , "r" , "a" , "smooth""spline" 。如果 type 具有多个元素,则会尝试组合每个组件的效果。

如果type中包含前五个中的任何一个,则其行为与plot中相应的type的效果类似:"p""l"分别代表点和线; "b""o"(对于 ‘overlay’)绘制两者; "h" 从这些点到原点绘制垂直(或水平,如果 horizontal = TRUE )线段。类型 "s""S""l" 类似,它们连接连续的点,但不是通过直线连接,而是通过垂直和水平线段连接点,形成 ‘step’,其中"s" 的垂直段首先出现,"S" 的水平段首先出现。类型 "s""S" 沿其中一个轴对值进行排序(取决于 horizontal );这与 plot 中的行为不同。对于后一种行为,请将 type = "s"panel = panel.points 结合使用。

类型 "g" 在后台使用 panel.grid 添加参考网格,但使用 grid 参数现在是首选方法。

type 的其余值会导致各种类型的平滑。这也可以使用smooth参数或直接调用相关面板函数来实现。面板函数提供了对图形和其他参数的更精细的控制,但使用smoothtype更方便简单的使用。建议使用smooth,但也支持type以实现向后兼容性。

类型 "r" 添加线性回归线,"smooth" 添加黄土拟合,"spline" 添加三次平滑样条拟合,"a" 绘制连接每个不同 x 值的平均 y 值的线段。有关详细信息,请参阅smooth

有关示例,请参见 example(xyplot)demo(lattice)

groups

可选的分组变量。如果存在,将使用panel.superpose来显示每个子组

col , col.line , col.symbol

默认颜色是使用 trellis.par.getplot.symbolplot.line 获取的。

font , fontface , fontfamily

pch 为字符时使用的字体

pch , lty , cex , lwd , fill

其他图形参数。对于 pch 的某些值,fill 服务于 points 中的 bg 的用途

horizontal

控制某些 type 方向的逻辑标志,例如 "h""s" 、 ans "S" 和平滑结果。

...

panel.xyplot 的额外参数(如果有)。通常作为图形参数传递给低级绘图函数,或者传递给执行平滑的面板函数(如果适用)。

smooth

如果指定,则指示要添加的平滑类型。可以是包含 "lm""loess""spline""average" 中的一个或多个值的字符向量。也可以是逻辑标志; TRUE 被解释为 "loess" 。其中每一个都会导致调用相应的面板函数,如下所述; smooth 参数只是提供了一个方便的快捷方式。

"lm" 添加线性回归线(与 panel.lmline 相同,默认图形参数除外)。 "loess" 添加黄土拟合(与 panel.loess 相同)。 "spline" 添加三次平滑样条拟合(与 panel.spline 相同)。 "average" 具有调用 panel.average 的效果,它与 groups 参数结合使用可用于创建交互图。

通常,使用 y 变量作为响应、x 变量作为预测变量来执行平滑。但是,如果 horizontal = TRUE ,则 xy 的角色互换。

grid

逻辑标志、字符串或列表,指定是否以及如何绘制背景网格。这提供了与 type="g" 相同的函数,但它是首选替代方案,因为效果 type="g" 在概念上不同于其他 type 值(均为 data-dependent)。使用 grid 参数还可以提供更大的灵活性。

最一般地, grid 可以是要提供给 panel.grid 的参数列表,并使用这些参数来调用 panel.grid 。可以使用三个快捷方式:

TRUE

大致相当于list(h = -1, v = -1)

"h"

大致相当于list(h = -1, v = 0)

"v"

大致相当于list(h = 0, v = -1)

如果 grid = FALSE 则不会绘制网格。

abline

一个数字向量或更一般地包含用于调用 panel.abline 的参数的列表。如果指定为数值向量,则 abline 用作 panel.abline 的第一个未命名参数。这允许 abline = c(0, 1) 形式的参数(添加对角线)或 abline = coef(fm) 来拟合来自拟合模式的回归线。使用列表形式进行更精细的控制;例如,abline = list(h = 0, v = 0, col = "grey")

为了获得更大的灵活性,请直接使用panel.abline

jitter.x , jitter.y

逻辑上,在绘制数据之前是否应该抖动数据。

factor , amount

控制抖动量。

identifier

附加到由此面板函数创建的 grobs 名称之前的字符串。

细节

创建 xy 的散点图,并可以通过类型参数进行各种修改。 panel.qq 在调用 panel.xyplot 之前绘制一条 45 度线。

请注意,大多数控制显示的参数可以直接提供给高级(例如 xyplot )调用。

例子


types.plain <- c("p", "l", "o", "r", "g", "s", "S", "h", "a", "smooth")
types.horiz <- c("s", "S", "h", "a", "smooth")
horiz <- rep(c(FALSE, TRUE), c(length(types.plain), length(types.horiz)))

types <- c(types.plain, types.horiz)

x <- sample(seq(-10, 10, length.out = 15), 30, TRUE)
y <- x + 0.25 * (x + 1)^2 + rnorm(length(x), sd = 5)

xyplot(y ~ x | gl(1, length(types)),
       xlab = "type", 
       ylab = list(c("horizontal=TRUE", "horizontal=FALSE"), y = c(1/6, 4/6)),
       as.table = TRUE, layout = c(5, 3),
       between = list(y = c(0, 1)),
       strip = function(...) {
           panel.fill(trellis.par.get("strip.background")$col[1])
           type <- types[panel.number()]
           grid::grid.text(label = sprintf('"%s"', type), 
                           x = 0.5, y = 0.5)
           grid::grid.rect()
       },
       scales = list(alternating = c(0, 2), tck = c(0, 0.7), draw = FALSE),
       par.settings = 
       list(layout.widths = list(strip.left = c(1, 0, 0, 0, 0))),
       panel = function(...) {
           type <- types[panel.number()]
           horizontal <- horiz[panel.number()]
           panel.xyplot(..., 
                        type = type,
                        horizontal = horizontal)
       })[rep(1, length(types))]

作者

Deepayan Sarkar Deepayan.Sarkar@R-project.org

也可以看看

panel.superpose , xyplot , splom

相关用法


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