2017-04-07 13 views
0

2つのボックスプロットがあるとします。R ggplot2 - 同じx値に2つのボックスプロットをプロットする方法

trial1 <- ggplot(completionTime, aes(fill=Condition, x=Scenario, y=Trial1)) 
trial1 + geom_boxplot()+geom_point(position=position_dodge(width=0.75)) + ylim(0, 160) 

trial2 <- ggplot(completionTime, aes(fill=Condition, x=Scenario, y=Trial2)) 
trial2 + geom_boxplot()+geom_point(position=position_dodge(width=0.75)) + ylim(0, 160) 

トライアル1とトライアル2を同じプロットと同じXでプロットするにはどうすればよいですか?彼らはyの同じ範囲を持っています。

私は(位置=「アイデンティティ」)geom_boxplotを見て、それは同じX.

上の2つの条件(記入)私は同じX.


上の2つのYの列をプロットしたいのプロット

編集:データセット

User Condition Scenario Trial1 Trial2 
1  1  ME  a  67  41 
2  1  ME  b  70  42 
3  1  ME  c  40  15 
4  1  ME  d  65  23 
5  1  ME  e  45  45 
6  1  SE  a 100  34 
7  1  SE  b  54  23 
8  1  SE  c  70  23 
9  1  SE  d  56  15 
10 1  SE  e  30  20 
11 2  ME  a  42  23 
12 2  ME  b  22  12 
13 2  ME  c  28  8 
14 2  ME  d  22  8 
15 2  ME  e  38  37 
16 2  SE  a  59  18 
17 2  SE  b  65  14 
18 2  SE  c  75  7 
19 2  SE  d  37  9 
20 2  SE  e  31  7 

dput()

structure(list(User = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), Condition = structure(c(1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L), .Label = c("ME", "SE"), class = "factor"), Scenario = 
structure(c(1L, 
2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 5L, 1L, 2L, 
3L, 4L, 5L), .Label = c("a", "b", "c", "d", "e"), class = "factor"), 
Trial1 = c(67L, 70L, 40L, 65L, 45L, 100L, 54L, 70L, 56L, 
30L, 42L, 22L, 28L, 22L, 38L, 59L, 65L, 75L, 37L, 31L), Trial2 = c(41L, 
42L, 15L, 23L, 45L, 34L, 23L, 23L, 15L, 20L, 23L, 12L, 8L, 
8L, 37L, 18L, 14L, 7L, 9L, 7L)), .Names = c("User", "Condition", 
"Scenario", "Trial1", "Trial2"), class = "data.frame", row.names = c(NA, 
-20L)) 
+3

はあなたが再現可能な例を作るために)(dputを使用してデータセットを追加してもらえますか? –

+3

あなたはこのデータをワイドからロングまで再構築する必要があると思うでしょう。 _i.e._ 'trial1'と' trial2'の値を一つの 'y'カラムに入れます。しかし、我々はいくつかのデータを見る必要があります。 – neilfws

+0

ありがとう、私は1つのプロットでプロットしたい3つの条件があると思いますか?(条件/シナリオ/トライアル)。私は2つの方法だけを知っています。条件の1つに当てはめたくありません。 – kevin0228ca

答えて

2

interactionを使用して、2つの要因を組み合わせて、3つ目の要因に対してプロットすることができます。たとえば、あなたがあなたの元のコードのような条件でいっぱいにしたいと仮定すると:

library(tidyr) 
completionTime %>% 
gather(trial, value, -Scenario, -Condition, -User) %>% 
ggplot(aes(interaction(Scenario, trial), value)) + geom_boxplot(aes(fill = Condition)) 

結果: enter image description here

+0

私はもともとはそれを疑問視していましたが、例えば、 a.Trial2の下で.Trial1(多分色が違うかもしれません)が、おそらくその種のプロットは意味をなさないか、ggplot2の制限です。とにかくこれは良い解決策です。 – kevin0228ca

関連する問題