13

ラティスパッケージをロードしました。それから私は実行します:

> xyplot(yyy ~ xxx | zzz, panel = function(x,y) { panel.lmline(x,y)}

これにより、xyplotを使用せずに、回帰直線を示すプロットのパネルが生成されます。私はそれがどのように行われるかを完全に理解せずにpanel.lmlineを行っています。私はデータ引数があることを知っています、データは何ですか、私が3つの変数を持っていることを知っていxxxますyyy、、zzz

4

1 に答える 1

24

本当に必要なのは次のとおりです。

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ます。

于 2012-10-19T10:57:35.067 に答える