2015-11-12 85 views
1

您好有一個由三個變量組成的實驗,我想將它們全部繪製在一個繪圖上。在ggplot2的單個圖上繪製3個變量

這是我的DF:

AB <- data.frame(block=c("A", "A", "A", "A", "B", "B", "B", "B"), 
    familiarity=c("fam", "fam", "unfam", "unfam"), 
    prime=c("P", "UP"), 
    RT=c("570.6929", "628.7446", "644.6268", "607.4312", "556.3581", "645.4821", "623.5624", "604.4113")) 

現在我只能打破變量中的一個分成兩個獨立的地塊,這樣其中A和B是第三個變量的兩個層次:

A <- AB[which(AB$block == "A"),] 
B <- AB[which(AB$block == "B"),] 

pa <- ggplot(data=A, aes(x=prime, y=RT, group=familiarity)) + 
    geom_line(aes(linetype=familiarity), size=1) + 
    expand_limits(y=c(500,650)) 

pb <- ggplot(data=B, aes(x=prime, y=RT, group=familiarity)) + 
    geom_line(aes(linetype=familiarity), size=1) + 
    expand_limits(y=c(500,650)) 

我想將圖A疊加到圖B上,並將第三個變量用顏色標識。

任何想法?

+0

請提供最小再現的示例包括樣本數據。 – lukeA

+0

很多,但很難在沒有看到你的數據是什麼樣的情況下幫助你。請提供一個可重複的例子。 – Heroka

+0

難道你不能只用顏色替換第三列中的值,並用2D繪製它。再次舉一個例子,你的數據會很棒。 – Ansjovis86

回答

6

這是什麼意思?

p_all <- ggplot(AB, aes(x=prime,y=RT,group=interaction(familiarity,block))) + 
    geom_line(aes(linetype=familiarity,color=block)) 

enter image description here

數據用於:

AB <- structure(list(block = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 
2L), .Label = c("A", "B"), class = "factor"), familiarity = structure(c(1L, 
1L, 2L, 2L, 1L, 1L, 2L, 2L), class = "factor", .Label = c("fam", 
"unfam")), prime = structure(c(1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L 
), class = "factor", .Label = c("P", "UP")), RT = c(570.6929, 
628.7446, 644.6268, 607.4312, 556.3581, 645.4821, 623.5624, 604.4113 
)), .Names = c("block", "familiarity", "prime", "RT"), row.names = c(NA, 
-8L), class = "data.frame") 
+0

完美,謝謝! –

0

,如果你有不同的數據集爲這些變量,那麼你可以指定數據

ggplot()+ 
    geom_line(data=A, aes(x=prime, y=RT, group=familiarity,linetype=familiarity), size=1) + 
    geom_line(data=B, aes(x=prime, y=RT, group=familiarity,linetype=familiarity), size=1)+ 
    expand_limits(y=c(500,650)) 
+0

謝謝,但我需要通過顏色來識別變量的兩個級別。 –

相關問題