2012-09-17 6 views
8

可能性の重複:
How to overlay density plots in R?補正された縮尺で、単一濃度プロットで複数の線を得るにはどうすればいいですか?

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

Iでし以下、

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

しかし、やってこれを、私は

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 

次のデータ(MYDATA)を、持っていると私は、このための密度プロットを取得したいですすべてのサンプル曲線がプロット限界内に収まるわけではないので、正確なプロットは得られません。私は答えを探してみましたが、正直なところ私はまだこれを解決することができません。 上記のスケールを設定するにはどうすれば教えていただけますか?または、上記のコードをさらに追加すると、すべてのカーブが範囲内にありますか?私は多くのサンプルを持っているので、サンプルを右にスケーリングした後、自動的に別のカラーカーブを割り当てることができるものが必要です。事前に

おかげ..

+0

質問への答えはで受け入れ答えにコメントで見つけることができます重複を提案。 – Dason

答えて

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") 

enter image description here

+0

はい、どうもありがとうございました。 – Letin

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") 

densities

+0

はいそれに働きます..あなたの助けもありがとう。:) – Letin

+2

より自動化されたアプローチ(範囲を計算した後)は、 'plot(0、type =" n "、xlim = range (範囲[1:2、])、ylim =範囲(範囲[3:4、])); COL = rainbow(ncol(MyData)); lapply(1 :(ncol(MyData))、関数(x)行(密度(MyData [、x])、col = COL [x])) 'となります。つまり、空のプロットを作成し、この空のプロットに 'lapply'を使って' lines'をプロットします。 – A5C1D2H2I1M1N2O1R2T1

+0

+1良いアイデア、@ mrdwab –

4

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

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

enter image description here

またはプロットする前に背の高いフォームにデータを取得するためにreshape2パッケージを使用します。

library(reshape2) 

myDataM<-melt(myData) 

densityplot(~ value, groups = variable, data = myDataM, auto.key = TRUE) 
+0

はいこれはいいと思いますので、色も自動的に..ありがとう – Letin

関連する問題