1

簡単な例を使用すると、次のようになります。

A = rnorm(10)
B = rnorm(100)
C = rnorm(500)

library(vioplot)
vioplot(A,B,C)

したがって、私の質問は、サンプルサイズを考慮したグラフを作成する方法です。「C」のサンプル サイズは「A」よりもはるかに大きいのですが、「C」のバイオリン プロットで「A」よりも「大きい」バイオリンを表示する方法はありますか? したがって、これは私が推測する3つのクラスにまたがる密度分布になります。したがって、「A」と「C」の全体の分布形状は等しいかもしれませんが、同じ画像を表示するのではなく、「A」がより小さな形状の高さであることを示していますサンプルサイズが小さいため、「C」と「B」も同様です。

4

2 に答える 2

1

残念なことに、vioplot はそのパラメーターの一部に対してベクトルを受け入れません。これが回避策です。vioplot()この回避策に役立つ機能は、パラメータatとパラメータです。基本的に、各バイオリンを希望どおりに形作るパラメーターを使用して個別にプロットします。で使用するサンプル サイズのスケーリング方法を調整する必要がある場合があります。wexadd=Twex

n<-c(100,1000)
size<-scale(sqrt(n),center=F)

x1<-rnorm(n[1])
x2<-rnorm(n[2])

#initialize an empty plot
plot(0:3,rep(0,4),type='l',xlim=c(0,3),ylim=c(-4,4),ylab="",xlab="",xaxt="n",lty=3)

# fill in the violins at specific x locations using the `wex` parameter for size
vioplot(x1,at=1,wex=size[1],add=T,col="darkgray")
vioplot(x2,at=2,wex=size[2],add=T,col="darkgray")
axis(1,at=1:2,labels=c("Mon","Tues"))

ここに画像の説明を入力

于 2013-04-05T21:54:48.503 に答える
1

バイオリン プロットは箱ひげ図と密度/確率プロットを組み合わせたものであるため、サイズに違いはありません。

ここに短い例があります:

library(ggplot2)

a) 同じサイズ

df.ex<-data.frame(G=c(rep('A',100),rep('B',100)),Y=c(rnorm(100),rnorm(100)))
ggplot(data=df.ex,aes(x=G,y=Y)) + geom_violin()

b) 別のサイズ

df.ex<-data.frame(G=c(rep('A',100),rep('B',1000)),Y=c(rnorm(100),rnorm(1000)))
ggplot(data=df.ex,aes(x=G,y=Y)) + geom_violin()

それを組み合わせると、geom_jitterそこにあるポイントの数が表示されます。

 ggplot(data=df.ex,aes(x=G,y=Y)) + geom_jitter() + geom_violin()
于 2013-04-05T21:30:20.457 に答える