面板参数如何在R中起作用?

时间:2016-11-25 18:25:46

标签: 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)
     }))

所以我开始阅读以下内容: 绘制该数据集的置信区间的上端和下端。

但在那之后我很困惑。我知道面板功能可以对面板中的任何内容进行更专业的更改。

似乎代码说"我们在这个面板中放置一个xy函数,并且将通过xyplot函数调用它,它将是一个带有以下参数的曲线"

我是否正确地假设一旦你召集小组参数,你可以做panel.X,其中' X'是什么功能与面板参数最初调用的相关? (在这种情况下,函数"函数(x,y,...)")

奖金问题:R如何知道将什么打包到" ..."参数

1 个答案:

答案 0 :(得分:1)

我说你基本上是正确的。此实例中的panel参数是指定接受两个命名参数xy的函数,并且可能接受点列表中的任何其他命名参数(但前提是它们的名称与这些参数完全匹配)特定面板功能。您可以转到panel.xyplotpanel.curve的帮助页面,查找命名参数可能获得的值。

在这个例子中,公式中波形符的LHS上也有两个名称,因此y函数中panel.xyplot的每个实例都将传递两次向量,一次用{{1} } ylower一次。 upper调用不会获得这些额外值,因为其参数列表中没有panel.curve

我假设这个NPL.band函数来自SMIR包,你的数据参数类似于:

y

看看?panel.xyplot,我们看到:

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(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") 函数调用内匹配。尝试在数据参数逗号后面添加panel.xyplot

另请花点时间查看col=c("darkred", "orange"),页面。