2016-08-25 1 views
2

私はggplotのボックスプロットのx軸を各グループの平均で並べ替えることができます。例えばRのグループの平均によってgeom_boxplotのx軸を並べ替える方法は?

、このデータフレーム持っている私がいる場合:

L3 <- LETTERS[1:3] 
 
fac <- sample(L3, 50, replace = TRUE) 
 
(d <- data.frame(x = 1, y = sample(1:10, 50, replace = TRUE), fac = fac)) 
 
d 
 

 
p <- ggplot(d, aes(x=fac, y=y)) + geom_boxplot(fill = "#E69F00") 
 
print(p)

をしかし、私は各因子の平均でボックスプロットを並べ替えることができるようにしたい(すなわちA、B 、C)を使用します。私はこれに対する答えを探していて、いくつかのコマンドを実行しましたが、どれも働いていませんでした。私は注文や再注文とdplyr /要約を使用する方法があるかもしれないと思っていますが、私が試したものはすべて動作していません。

まだ画像をアップロードすることはできませんが、グラフの平均値はAが6、Bが5、Cが5.5です。注文はB、C、Aにしたいとします。実際のグラフには30の要素があるので、手作業で注文することなく簡単に行うことができます。

私は本当にすべての助けに感謝します!

答えて

1

最も簡単な方法は、reorderを使用することです。ここでは

d$fac = reorder(d$fac, d$y, mean) 

我々はfacの値を条件yの平均値を計算します。 ggplot2は今levels(d$fac)

の順あなたはまた、ggplot呼び出しでreorderを置くことができる応じてプロットを注文します

# Thanks to renato vitolo 
ggplot(d, aes(x=reorder(fac, y, mean), y=y)) 
関連する問題