facet_grid()
を使用して複数のプロットをプロットしようとしています。それぞれのファセットに対して、異なるファクターレベルのサブセットを手動でX軸に沿ってプロットしたいと考えています。ggplotファセット内のファクタの順序を変更
は基本的に私は、各X軸上の上位5カ国(手動で定義)をプロットしたい、と私はgrid.arrange()
(例を参照)との代替ソリューションを使用することができますが、私は維持するためにfacet_grid()
またはfacet_wrap()
でそれをしたいと思います残りの私のプロットと同じ美学です。
ファクタレベルでファセットを並べ替える答えを見つけることができました。私は注文審美的なものを試してみましたが、成功しなかったので、私はそれを認識していますが、これを行う方法があるかどうか疑問ですggplotでの面取りは、軸の変更を念頭に置いて設計されていません。私はこれに関するいくつかのアドバイスを感謝します。
ここには、私が望むものの再現可能な例があります(手動でX軸の順序を定義しました)。
library(reshape)
library(ggplot2)
library(gridExtra)
# Load data
mtcars_melt <- melt(mtcars)
# Subset data
set1 <- subset(mtcars_melt, variable == "mpg" | variable == "wt" | variable == "qsec")
set2 <- subset(mtcars_melt, variable == "gear" | variable == "cyl" | variable == "mpg")
set3 <- subset(mtcars_melt, variable == "drat" | variable == "vs" | variable == "mpg")
# Order factors
set1$variable <- factor(set1$variable, levels = c("mpg", "wt", "qsec"))
set2$variable <- factor(set2$variable, levels = c("mpg", "gear", "cyl"))
set3$variable <- factor(set3$variable, levels = c("vs", "mpg", "drat"))
# Make plots
plot1 <- ggplot(set1, aes(x = variable, y = value)) + ylim(0, 35) + geom_boxplot()
plot2 <- ggplot(set2, aes(x = variable, y = value)) + ylim(0, 35) + geom_boxplot()
plot3 <- ggplot(set3, aes(x = variable, y = value)) + ylim(0, 35) + geom_boxplot()
grid.arrange(plot1, plot2, plot3, ncol = 3)
これはプロットの例です(申し訳ありませんが、画像を直接投稿するにはさらに多くの担当者が必要です)。 Example plot
これが不可能な場合、私は驚かないだろう。 facet_grid/wrapのポイントは、ファセットを比較可能にすることです。今のところ、軸のスケールのみが調整可能であり、ある軸に沿った実際の値を交換することによって、いくつかの円では不誠実と認識される可能性があります。 –
私は、主なアプローチは、x変数とファセット変数の組み合わせである新しい要素を作成し、それをx変数として使用することです。参照してください[here](http://stackoverflow.com/questions/12064007/factor-order-within-faceted-dotplot-using-ggplot2) – aosmith
@chenga他のプロットと同じ美学ではどういう意味ですか?私はあなたがgrid.arrange内でそれを行うことができると思う。 – timat