2017-10-10 58 views
0

語境:我想一個實驗中,以圖形比較工作量和信任隨時間的演變。時間由2個塊表示。堆棧不同變量上圖

問題:我試圖用不同的單位在同一個圖上繪製不同的變量來比較進化。我只發現它適用於geom_line,但它不適用於stat_summary。

數據:x爲 「塊」(2塊)表示時間。用於y的變量是「Workload」和「Trust」(從1到5,通過詢問主題獲得)。 給一些數據:

data = data.frame("Subject" = c(1,1,2,2,3,3), "Block" = c(1,2,1,2,1,2), "Workload" = c(1,5,2,4,3,3), "Trust" = c(4,1,3,2,2,1)) 

我想這一點,它的工作原理:

ggplot(data, aes(Block)) + geom_line(aes(y = Trust)) + geom_line(aes(y = Workload)) 

但是它並沒有產生令人信服的結果:因爲我有多個點,它連接它們的每個值,使我只獲得垂直特徵。考慮geom_line應該做什麼是完全正常的。 所以我仍然可以計算出平均每個塊和每個變量,但我不知道是否有可能獲得與stat_summary的直接結果,使用類似:

ggplot(data, aes(Block)) + stat_summary(fun.y = mean, geom = line, aes(y = Trust)) + stat_summary(fun.y = mean, geom = line, aes(y = Workload)) 

謝謝你的人奉獻哪怕是一點點他們的時間試圖回答這個問題。

有一個愉快的一天!

Pyxel

+0

你缺少周圍的'geom'報價。試試'geom =「line」'。 – aosmith

+0

謝謝你指出這一點。然而,只有當我寫這篇文章,我也把在R. – Pyxel

+0

的代碼(使用「線」)引號運行對我罰款。結果不是你正在尋找的,還是你得到一個錯誤或...? – aosmith

回答

0

我建議在繪圖之前總結您的數據。考慮在這裏:

library(tidyverse) 
df <- data_frame("Subject" = c(1,1,2,2,3,3), 
       "Block" = c(1,2,1,2,1,2), 
       "Workload" = c(1,5,2,4,3,3), 
       "Trust" = c(4,1,3,2,2,1)) 
grouped <- 
    df %>% 
    group_by(Block) %>% 
    summarise(trust = mean(Trust), 
      workload = mean(Workload)) 

ggplot(grouped, aes(x = Block)) + 
    geom_line(aes(y = trust)) + 
    geom_line(aes(y = workload)) 

+0

謝謝你這個答案。的確,這是一種可能性。但是,正如我在原文中所說的那樣,這並不完全滿足我,部分原因在於,由於我只有平均值,因此無法繪製誤差線。 – Pyxel

+0

你也可以在調用上面的'summarise'時直接計算你的標準錯誤,而不是使用'stat.summary' – zlipp

+0

謝謝你指出這一點,我馬上試試=) – Pyxel