3

定義:

df <- data.frame(
        line1 = rep(seq(1,5,by=1),2), 
        line2 = rep(seq(2,6,by=1),2),
        index = rep(seq(1,5,by=1),2),
        factor=rep(c("a","b"),each=5))

ここでline1、 とline2は 2 つの変数、たとえば身長と体重です。

これは、各パネルに必要なシンプルなスタイルです (ポイント マーカーのサイズも変更したいのですが、方法は使用しません)。

plot(df$line1[df$factor=="a"], type = "o", ylim=c(0,6))
lines(df$line2[df$factor=="a"], type = "o", lty=2, pch=0)

これを試すと:

library(lattice)
xyplot(c(line1,line2)~index|factor,data=df,type="o")

プログラムは、すべてのポイントを 1 つのライン上にあるかのように扱います。

さらに、目的の結果を得るためにプロット スタイルの引数を入力する方法がわかりません。

PS1。驚いたことに、私はグーグルで検索し、多くの散布図 (線形フィット、密度など) とトレリス グラフのヒストグラムの例を見つけましたが、私がやろうとしている単純なことの 1 つではありません。

PS2。この質問にタグを付けたいのですが、タグtrellisを作成するための評価ポイントがありません。ボランティアはいますか?

4

2 に答える 2

7

答えは実際には非常に簡単です。line1 と line2 をベクトルに結合する代わりに、 xyplot の拡張数式インターフェイスを使用します。

xyplot(line1+line2~index|factor,data=df,type="o")

与える:

ここに画像の説明を入力

また?xyplot、テキストの山を読んで、そこにある例で少し遊んでください。タイトル、凡例などでこれをカスタマイズする方法がわかります。

同様にラベルを付けggplot2たように、これはそのパッケージでそれを成し遂げる1つの可能性です:

require(ggplot2)
require(reshape)
df2 <- melt(df,id=c("index","factor"))

qplot(index,value,variable,facets = .~factor ,
          data=df2,geom="line",colour=variable)

与える:

ここに画像の説明を入力

于 2011-07-28T12:35:33.023 に答える
2

または、データを溶かして使用することもできますgroup:

library(reshape)
df2 <- melt(df,id.var=3:4)
xyplot(value~index|factor,data=df2,type="o",group=variable)
于 2011-07-28T12:38:28.533 に答える