2016-03-24 13 views
4

したがって、私は3つの異なる変数によって設定されたプロットのグリッドを作成しようとしています。私はちょうど良いプロットのグリッドを生成することができます、私が持っている唯一のヒッチは、ラベルが配置されている順序は、順序が間違っているようです。以下のグラフ生成ファセットのグリッドでネストされたファセットラベルを指定する

library(ggplot2) 
data(mtcars) 
qplot(mpg, wt, data=mtcars) + facet_grid(cyl +am ~ vs, labeller = label_both) 

:ここで私がやっているかの簡単な例である大部分は、今

enter image description here

は、プロットは偉大に見えますが、上のラベルの cylは「最初」(プロットに近い)と表示され、がネストされていますが、プロットが配置されている方法では、ファセットがで表示されていることがわかりますam入れ子hin cyl

だから、私は午前レベルがレイアウトを反映するために CYLレベル内にリストされるようにラベルが表示されていることを順序を変更したいと思います。私は "facet_grid order labels"や "nested facet label order ggplot2"のようなものを検索しようとしましたが、私が見つけたほとんどすべての結果は、問題ではなく、指定されたファセットの実際のレベルの順序を変更する私は説明した。さらに、ラベルをつけて調べましたが、ラベルの配置が決まった後にその関数が呼び出されたようです。

ありがとうございました!

+0

label_rev <- function(labels, multi_line = TRUE, sep = ": ") { label_both(rev(labels), multi_line = multi_line, sep = sep) } 

そして、それは、所望の結果につながる:以下の関数は、逆の順序でラベルデータフレームの列にlabel_both()を呼び出します逆の問題ですので、 'label_both'の奇妙に見えます。あなたが好きなら、あなた自身のラベラーを書くことができます。 – alistaire

+0

@alistaire私はもともとlabel_both(プロットの明快さのためにそれを加えたもの)を使用しなかったので、それはラベルの問題ではないと思いますが、ラベルは同じ順序で現れました。 – Vindel

答えて

2

表示されているラベルの順序は、ggplotがラベルを注文する標準的な方法にすぎないと思われます。あなたは式中の変数の順序を交換した場合、ラベルはまた、位置を変更するが、これと同時に、また、あなたが望むものはおそらくされていない、行を並べ替える:

qplot(mpg, wt, data=mtcars) + 
    facet_grid(am + cyl ~ vs, labeller = label_both) 

enter image description here

あなたは実際にはこれを修正するためにlabellerを使用することができます。あなたを与えるようで式を並べ替える

qplot(mpg, wt, data=mtcars) + 
    facet_grid(cyl + am ~ vs, labeller = label_rev) 

enter image description here

+1

偉大な答えをありがとう! – Vindel

関連する問題