2012-07-05 16 views
7

データフレーム内の無関係な各列の個別ボックスプロットをプロットしたいと思います。私はパッケージのboxplot.matrixで正しい軌道に乗っていると思っていましたが、共有されたboxplot内のすべてを軸上の共有スケールでプロットするのと同じように見えます。私は5つの個別のプロットが必要です。R:データフレームの列を使用して複数ボックスプロットをプロット

私のような手でこれを行うことができます:

par(mfrow=c(2,2)) 
boxplot(data$var1 
boxplot(data$var2) 
boxplot(data$var3) 
boxplot(data$var4) 

しかし、データフレームの列を使用する方法が必要?

編集:私は反復を使用しました。私の答えを見てください。

答えて

2

物事を立派にするためにggplot2パッケージを使用します。おそらく私は元の質問ではっきりしていなかったと思います。回答ありがとうございます。

par(mfrow=c(2,5)) 
for (i in 1:length(plotdata)) { 
     boxplot(plotdata[,i], main=names(plotdata[i]), type="l") 

} 
7

?boxplotから、複数のデータベクトルをリストの要素として渡すオプションがあり、複数のボックスプロットが1つずつ表示されることがわかります。あなたは本当に(単一箱ひげ図と別のパネルごとをしたい場合は

m <- matrix(1:25,5,5) 
boxplot(x = as.list(as.data.frame(m))) 

が、率直に言って、私はなぜ表示されない:

は、だから我々がする必要があるすべては、リストに私たちの行列の列に変換されますあなたが)ということをしたいと思う、私の代わりにggplotとファセットに変わります:

m1 <- melt(as.data.frame(m)) 
library(ggplot2) 
ggplot(m1,aes(x = variable,y = value)) + facet_wrap(~variable) + geom_boxplot() 
+2

-1ドキュメントを読んで不正行為をしています! ;-) –

+0

これを使用すると、複数のxカテゴリを持つ単一のプロットが返されます。私はマトリックスにあるxカテゴリーごとに別々のプロットを作ろうとしています。 '(mfrow = c(2,5)) boxplot(x = as.list(as.data.frame(plotdata)))'は、私が使用したコードです。ここでplotdataは... x9 double matrix 。 – gisol

+0

@gisol私の編集を参照してください。 – joran

10

あなたは物事を単純化するためにreshapeパッケージを使用することができ

data <- data.frame(v1=rnorm(100),v2=rnorm(100),v3=rnorm(100), v4=rnorm(100)) 
library(reshape) 
meltData <- melt(data) 
boxplot(data=meltData, value~variable) 

かさえ、私はこれを行うために反復を使用

library(ggplot2) 
p <- ggplot(meltData, aes(factor(variable), value)) 
p + geom_boxplot() + facet_wrap(~variable, scale="free") 
+0

'melt'と' stack'の違いは何ですか? –

関連する問題