panel参数在R中是如何工作的?
这是我在书中看到的代码:panel参数在R中是如何工作的?,r,graph,R,Graph,这是我在书中看到的代码: print(xyplot(lower + upper ~ x, data=NPL.bands(dataset$variable), panel = function(x,y,...) { panel.xyplot(x,y,...) panel.curve(pnorm(x,7.22,1.14), lwd=1.5) })) 因此,我开始阅读以下内容: 绘制该数据集置信区间的上限和下限 但在那之后,我感到困惑。我知道面板
print(xyplot(lower + upper ~ x, data=NPL.bands(dataset$variable),
panel = function(x,y,...) {
panel.xyplot(x,y,...)
panel.curve(pnorm(x,7.22,1.14), lwd=1.5)
}))
因此,我开始阅读以下内容:
绘制该数据集置信区间的上限和下限
但在那之后,我感到困惑。我知道面板功能可以对面板中的任何内容进行更专门的更改
代码似乎说“我们在这个面板中放置了一个xy函数,将通过xyplot函数调用,它将是一条带有以下参数的曲线”
我假设一旦调用面板参数,就可以执行panel.X,其中“X”是与面板参数最初调用的内容相关的任何函数,对吗?(在这种情况下,函数“函数(x,y,…)”)
附加问题:R如何知道在“…”参数中包含什么?我想你基本上是正确的。此实例中的panel参数是一个指定用于接受两个命名参数的函数,
x
和y
,并可能接受dots列表中的任何其他命名参数(但前提是它们的名称与特定面板函数的名称完全匹配。您可以通过转到panel.xyplot
和panel.curve
的帮助页面,查找哪些命名参数可能会获得指定值
在本例中,公式中的波浪线左侧有两个名称,因此面板中y
的每个实例.xyplot
函数将获得两次传递向量,一次使用y
作为下,一次作为上。面板.curve
调用不会获得这些额外值,因为re在其参数列表中为noy
我假设这个NPL.band函数来自软件包SMIR,并且您的数据参数如下所示:
str( NPL.bands(y) )
#
List of 3
$ x : num [1:44] 0 3 4 5 6 7 8 9 10 11 ...
$ lower: num [1:44] 0.000362 0.004418 0.011527 0.030885 0.054412 ...
$ upper: num [1:44] 0.0996 0.1327 0.1627 0.2176 0.2683 ...
查看?panel.xyplot,我们可以看到:
panel.xyplot(x, y, type = "p",
groups = NULL,
pch, col, col.line, col.symbol,
font, fontfamily, fontface,
lty, cex, fill, lwd,
horizontal = FALSE, ...,
grid = FALSE, abline = NULL,
jitter.x = FALSE, jitter.y = FALSE,
factor = 0.5, amount = NULL,
identifier = "xyplot")
因此,您可以添加这些参数中的任何一个,通过“水平”为“类型”命名或位置匹配,但仅为后面的参数在“…”之后命名,并且它们将在面板.xyplot
函数调用中匹配。请尝试在数据参数逗号之后添加col=c(“darkred”,“orange”),
另外,请花时间查看?Lattice
页面。非常感谢-这非常有帮助。