8

重複の可能性:
Rで密度プロットをオーバーレイする方法は?

私は最近マイクロアレイデータセットの作業を開始し、Rを手に入れようとしています。結果データからいくつかのプロットを作成したいのですが、次のことに固執しています。

私は次のデータ(myData)を持っています、

cpg samp1 samp2 samp3 
cpg1 0.43 0.32 0.21 
cpg2 0.43 0.22 1.00 
cpg3 0.11 0.99 0.78 
cpg4 0.65 0.32 0.12 
cpg5 0.11 0.43 0.89

そして、このための密度プロットを取得したいと思います。

私は次のことをしました、

plot (density(MyData$samp1), col="red") 
lines (density(MyData$samp2), col="green") 
lines (density(MyData$samp3), col="blue") 

ただし、すべてのサンプル曲線がプロットの制限内に収まるわけではないため、これを行っても正しいプロットは得られません。私は答えを探してみましたが、正直なところ、私はまだこれを解決することができません。上記のスケールを設定する方法を教えてください。または、すべての曲線が範囲内に収まるように、上記のコードにどのような追加を行う必要がありますか?たくさんのサンプルがあるので、正しくスケーリングした後、サンプルごとに異なるカラーカーブを自動的に割り当てることができるものが必要です。

前もって感謝します..

4

3 に答える 3

6

元のプロットの軸の制限を変更して、すべてに合わせる必要があります。これは、別の線を追加するときに自動的に行われるわけではありません。

例えば

plot (density(MyData$samp1), col="red",ylim=c(0,3.5),xlim=c(-1,2)) 
lines (density(MyData$samp2), col="green") 
lines (density(MyData$samp3), col="blue")

ここに画像の説明を入力してください

于 2012-09-17T09:14:33.177 に答える
4

latticeパッケージを使用すると(ggplot2例はそれほど遅れていないと確信しています)、次のdensityplot関数を使用できます。

library(lattice)
densityplot(~ samp1 + samp2 + samp3, data = myData, auto.key = TRUE)

ここに画像の説明を入力してください

または、reshape2パッケージを使用して、プロットする前にデータを背の高い形式にします。

library(reshape2)

myDataM<-melt(myData)

densityplot(~ value, groups = variable, data = myDataM, auto.key = TRUE)
于 2012-09-17T09:47:52.777 に答える
2

x軸とy軸の限界を自動的に生成することもできます。

ranges <-  apply(MyData, 2,
             function(x) { dens <- density(x); c(range(dens$x), range(dens$y)) })

plot(density(MyData$samp1), col="red",
       xlim = range(ranges[1:2, ]), ylim = range(ranges[3:4, ])) 
lines(density(MyData$samp2), col="green") 
lines(density(MyData$samp3), col="blue")

密度

于 2012-09-17T09:36:47.953 に答える