1つのメジャー条件と1つのマイナー条件の2つの変数で条件付けられたデータがあります。主要な条件が色を決定し、マイナーな条件が線の描画に使用されるように、1つのパネルに点と線()を含むxyplot
( )が必要です。lattice
type='b'
これが私の問題を代表する例です(データフレームを生成するには、以下のコードを参照してください)。 d
はメジャー条件であり、c
はマイナー条件です。
> dat
x y c d
1 1 0.9645269 a A
2 2 1.4892217 a A
3 3 1.4848654 a A
....
10 10 2.4802803 a A
11 1 1.5606218 b A
12 2 1.5346806 b A
....
98 8 2.0381943 j B
99 9 2.0826099 j B
100 10 2.2799917 j B
条件付けする接続線を取得する方法は、プロットでc
使用することです。groups=c
次に、それらを区別する方法は、以下を条件とする式を使用することd
です。
xyplot(y~x|d, data=dat, type='b', groups=c)
ただし、同じパネルにプロットが必要です。の数式条件を削除するとd
1つのパネルが生成されますが、group=d
を指定すると、「リトレース」線が描画されます。
xyplot(y~x, data=dat, type='b', groups=d, auto.key=list(space='inside'))
私が欲しいものは、これらの「リトレース」線がないだけで、上記のプロットに非常に似ています。
この例では、カテゴリ「A」の5行とそれに続くカテゴリ「B」の5行があることを知っているので、色を明示的に設定することは可能ですが、これは私の実際の問題では簡単に機能しません。さらに、auto.key
このように色を設定する場合は役に立ちません。
xyplot(y~x, data=dat, type='b', groups=c, col=rep(5:6, each=5))
データ:
set.seed(1)
dat <- do.call(
rbind,
lapply(1:10,
function(x) {
firsthalf <- x < 6
data.frame(x=1:10, y=log(1:10 + rnorm(10, .25) + 2 * firsthalf),
c=letters[x],
d=LETTERS[2-firsthalf]
)
}
)
)