2017-11-23 4 views
0

私はRを初めて使い、別の変数(スコア)でプロットのファセットを注文しようとしています。非美的変数に基づいてggplotでファセットを注文する方法は?

私のデータは長い形式であり、スコア(範囲= 3-12)でソートされますが、プロットはスコアでソートされません。各ファセットはIDです。私はスコアのレベルによってIDを注文することができることを期待して独自のスコアを持っていますが、ラインが後に、NASにすべての私のIDをオンscoreorderを、作成した

id age mostlikelyclass impclust weight score 
12034 1  Persistent  0  1  3 
12034 3  Persistent  1  1  3 
12034 5  Persistent  0  1  3 
12034 8  Persistent  1  1  3 
12034 11  Persistent  1  1  3 
12034 16  Persistent  0  1  3 
12004 1  Persistent  0  1  4 
12004 3  Persistent  1  1  4 
12004 5  Persistent  0  1  4 
12004 8  Persistent  2  1  4 
12004 11  Persistent  1  1  4 
12004 16  Persistent  0  1  4 
21171 1  Persistent  0 0.99  4 
21171 3  Persistent  1 0.99  4 
21171 5  Persistent  0 0.99  4 
21171 8  Persistent  2 0.99  4 
21171 11  Persistent  0 0.99  4 
21171 16  Persistent  1 0.99  4 
11204 1  Persistent  1 1.00  5 
11204 3  Persistent  1 1.00  5 
11204 5  Persistent  1 1.00  5 
11204 8  Persistent  1 1.00  5 
11204 11  Persistent  1 1.00  5 
11204 16  Persistent  0 1.00  5 
12360 1  Persistent  1 1.00  5 
12360 3  Persistent  1 1.00  5 
12360 5  Persistent  0 1.00  5 
12360 8  Persistent  1 1.00  5 
12360 11  Persistent  1 1.00  5 
12360 16  Persistent  1 1.00  5 
28654 1  Persistent  0 0.99  5 
28654 3  Persistent  2 0.99  5 
28654 5  Persistent  0 0.99  5 
28654 8  Persistent  2 0.99  5 
28654 11  Persistent  0 0.99  5 
28654 16  Persistent  1 0.99  5 

:ここ

は次のように私のデータが見えるものです。

scoreorder=unique(persistent$score) 
persistent$id=factor(persistent$id, levels=scoreorder) 

ここに私のプロットコードは、スコアによって順序付けられていないIDファセットを与える。

次のプロット作成し
ggplot(persistent, aes(x = age, y=impclust, group=id)) + 
geom_line()+ facet_wrap(~id)+ 
ggtitle("Most likely LLCA=Persistent") + xlab("Age")+ theme(axis.text.x = 
element_text(angle = 90, hjust = 1))+ 
ylab("Cluster")+theme(strip.text = element_text(size=1, lineheight=0.01)) 

:あなたからの順番を防ぐために

Facets not ordered by score

答えて

0

がユニークが変化しないので、あなたは、unique(df$id)factorの呼び出しで引数levelを設定することができますdata.frame提供されたベクトルの元の外観の順序レベルは、因子に変換したいベクトルに含める必要があります。これはあなたのコードでは当てはまりませんでした。このため、ǸAが見つかりました。このため

ggplot(df, aes(x = age, y=impclust, color=factor(score))) + 
    geom_line()+ facet_wrap(~factor(df$id, levels = unique(df$id))) 

enter image description here

+0

感謝します。問題は、私は同じスコアを持つ複数のIDを持っているため、このソリューションは同じスコアファセット上にIDをオーバーレイするということです。 (私はデータの編集版のみを提供しましたが、より多くのIDを追加することができます)。 – SK77

+0

@ SK77これをデータに追加する必要があります。 – Alex

+0

申し訳ありません - これを今追加しました。 – SK77

関連する問題