9

データセットごとのデータポイントの数が大きく異なる可能性があるデータセットの分布 (バイモーダルとユニモーダル) をグラフィカルに評価しようとしています。私の問題は、ラグプロットのようなものを使用してデータポイントの数を示すことですが、多くのデータポイントを持つシリーズが数ポイントしかないシリーズを圧倒するという問題を回避することです.

現在、私は次のようggplot2に組み合わせgeom_densityて作業しています:geom_rug

# Set up data: 1000 bimodal "b" points; 20 unimodal "a" points
set.seed(0); require(ggplot2)
x <- c(rnorm(500, mean=10, sd=1), rnorm(500, mean=5, sd=1), rnorm(20, mean=7, sd=1))
l <- c(rep("b", 1000), rep("a", 20))
d <- data.frame(x=x, l=l)

ggplot(d, aes(x=x, colour=l)) + geom_density() + geom_rug()

ここに画像の説明を入力

これはほとんど私が望んでいることですが、「a」ポイントは「b」ポイントに圧倒されます。

geom_pointの代わりに使用してソリューションをハッキングしましたgeom_rug

d$ypos <- NA
d$ypos[d$l=="b"] <- 0
d$ypos[d$l=="a"] <- 0.01

ggplot() + 
  geom_density(data=d, aes(x=x, colour=l)) +
  geom_point(data=d, aes(x=x, y=ypos, colour=l), alpha=0.5)

ここに画像の説明を入力

ただし、y 位置を手動で調整する必要があるため、これは満足のいくものではありません。たとえば、位置調整を使用して、異なるシリーズから敷物プロットを分離するより自動的な方法はありますか?

4

1 に答える 1

15

1 つの方法は、2 つのgeom_rug()呼び出しを使用することです。1 つは for b、もう 1 つは foraです。次に、1つのgeom_rug()セットsides="t"でそれらを上にプロットします。

ggplot(d, aes(x=x, colour=l)) + geom_density() + 
  geom_rug(data=subset(d,l=="b"),aes(x=x)) +
  geom_rug(data=subset(d,l=="a"),aes(x=x),sides="t")

ここに画像の説明を入力

于 2013-05-06T16:09:48.200 に答える