本当に必要なのは次のとおりです。
xyplot(yyy ~ xxx | zzz, type = c("p","r"))
type
引数が文書化されている場所?panel.xyplot
全部は引用しませんが、
type: character vector consisting of one or more of the following:
‘"p"’, ‘"l"’, ‘"h"’, ‘"b"’, ‘"o"’, ‘"s"’, ‘"S"’, ‘"r"’,
‘"a"’, ‘"g"’, ‘"smooth"’, and ‘"spline"’. If ‘type’ has more
than one element, an attempt is made to combine the effect of
each of the components.
The behaviour if any of the first six are included in ‘type’
is similar to the effect of ‘type’ in ‘plot’ (type ‘"b"’ is
actually the same as ‘"o"’). ‘"r"’ adds a linear regression
line (same as ‘panel.lmline’, except for default graphical
parameters). ‘"smooth"’ adds a loess fit (same as
‘panel.loess’). ‘"spline"’ adds a cubic smoothing spline fit
(same as ‘panel.spline’). ‘"g"’ adds a reference grid using
‘panel.grid’ in the background (but using the ‘grid’ argument
is now the preferred way to do so). ‘"a"’ has the effect of
calling ‘panel.average’, which can be useful for creating
interaction plots. The effect of several of these
specifications depend on the value of ‘horizontal’.
type
上で示したように、文字ベクトルを渡すことでこれらを連続して追加できます。基本的に、あなたのコードは と同じ結果をもたらしましたtype = "r"
。つまり、回帰直線だけが描かれました。
、および一般的な格子プロット関数のpanel
引数xyplot
は非常に強力ですが、非常に複雑なことに常に必要とされるわけではありません。panel
基本的に、プロットの各パネルに描画する関数を渡す必要があります。コードを変更して目的の処理を行うには、呼び出しも追加する必要がありpanel.xyplot()
ます。例えば:
xyplot(yyy ~ xxx | zzz,
panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
panel.lmline(x, y, ...)
})
を介して個々のパネル関数に他のすべての引数を渡すことも非常に便利です...
。この場合...
、無名関数の引数として必要です (上記のように)。実際、そのパネル関数部分はおそらく次のように記述できます。
xyplot(yyy ~ xxx | zzz,
panel = function(...) {
panel.xyplot(...)
panel.lmline(...)
})
x
しかし、私は通常、明確にするために引数と引数を追加しy
ます。