2012-03-26 7 views
2

パフォーマンスアナライザパッケージと同様に、複数の変数に対してボックスプロットを表示し、降順で列平均でランク付けしたいと考えています。私は箱ひげ図を生成するには、次のコードを使用します。平均値でランク付けされたボックスプロット

zx <- replicate (5, rnorm(50)) 
zx_means <- (colMeans(zx, na.rm = TRUE)) 
boxplot(zx, horizontal = FALSE, outline = FALSE) 
points(zx_means, pch = 22, col = "darkgrey", lwd = 7) 

これまでのところ、私は上記のように、それらをランク付けする方法を考え出すことができませんでした。私は、のソートの順番をとして試しましたが、これまでのところ満足のいく結果は得られていません。

ご協力いただければ幸いです。

+0

どのように水平ボックスプロットで 'ポイント'を使用するための任意のアイデアですか? boxplotを 'horizo​​ntal = TRUE'に変更すると、点線をboxplotsと合わせることができません。 – kribys

+0

新しい質問がある場合は、既存の質問に新しい質問を投稿し、コメントは投稿しないでください。 –

+0

申し訳ありません。私は私の質問[ここ](http://stackoverflow.com/questions/9874512/adding-points-to-horizo​​ntal-boxplots)を掲載しました。 – kribys

答えて

3

orderは私のために正常に動作します:!?

colnames (zx) <- seq_len (ncol (zx)) 
boxplot(zx [, order (zx_means)], horizontal = FALSE, outline = FALSE) 
points(zx_means [ order (zx_means)], pch = 22, col = "darkgrey", lwd = 7) 
+0

これは私が探していた結果をもたらしました。私は 'order'を使うときに構文を混乱させていたに違いないと思います。どうもありがとう! – kribys

+1

これで問題が解決した場合は、投票カウンタの下のチェックマークを使用して正解とマークできますか? –

3

あなたの例のデータを使用して、仕事を取得しますggplot2、これを使用する:

library(ggplot2) 
library(reshape) 

zx <- replicate (5, rnorm(50)) 

# ggplot2 uses long-shaped data.frame's, not matrices 
zx_flat = melt(zx)[c(2,3)] 
names(zx_flat) = c("cat","value") 

# Here I calculate the mean per category 
zx_flat = ddply(zx_flat, .(cat), mutate, mn = mean(value)) 
zx_flat = sort_df(zx_flat, "mn") # Order according to mean 
# Here I manually set the order of the levels 
# as this is the order ggplot2 uses 
zx_flat$cat = factor(zx_flat$cat, levels = unique(zx_flat$mn)) 

# make the plot 
ggplot(aes(factor(mn), value), data = zx_flat) + geom_boxplot() 

と我々が得る:

enter image description here

+0

私はggplot2を使用してみましたが、データのフォーマット方法を理解できませんでした。私はこれを必ず調べます。ありがとう。 – kribys

関連する問題