1

次のようなデータフレームがあります。

bin_with_regard_to_strand CLONE3
 31                      0.14750872 
 33                      0.52735917
 28                      0.48559060
 .                            .
 .                            .

CLONE3このデータ フレームを使用して、特定の値に対応する すべての値が 1 つのプロットを生成するような方法でバイオリン プロットを生成したいと考えていbin_with_regard_to_strandます。さらに、すべてのプロットを同じグラフィック デバイスに表示したい (私は R-studio を使用しており、すべてのプロットを 1 つのプロット ウィンドウに表示したい)。理論的には、次の方法でこれを行うことができます。

vioplot(df$CLONE3[which(df$bin_with_regard_to_strand==1)], 
  df$CLONE3[which(df$bin_with_regard_to_strand==2)]...)

しかし、bin_with_regard_to_strand60 の異なる値があるため、これは少しばかげているように思えます。私は使用してみましたtapply

tapply(df$CLONE3, df$bin_with_regard_to_strand,vioplot)

しかし、それは 60 の異なるウィンドウ (プロットごとに 1 つ) を開くことになります。または、addパラメーターを使用した場合:

 tapply(df$CLONE3, df$bin_with_regard_to_strand,vioplot(add=TRUE))

すべての値からのデータを含む単一のプロットを生成しましたbin_with_regard_to_strand(線で区切られています)。

これを行う方法はありますか?

4

3 に答える 3

0

のもう 1 つの代替手段mfrowは、 を使用すること layoutです。プロットを整理するのに非常に便利です。プロット インデックスを使用してマトリックスを作成するだけです。ここでできること。60 個の boxplots は膨大な数のようです。2ページにまとめたほうがいいかもしれません。

ここに画像の説明を入力

N(プロット数)の関数での以下のコード

library(vioplot)
N <- 60
par(mar=rep(2,4))  
layout(matrix(c(1:N),
              nrow=10,byrow=T))
dat <- data.frame(bin_with_regard_to_strand=gl(N,10),CLONE3=rnorm(10*N))
with(dat , 
     tapply(CLONE3,bin_with_regard_to_strand ,vioplot))
于 2013-06-30T11:54:33.480 に答える