簡體   English   中英

使用stat_summary(ggplot)在圖上堆疊不同的變量

[英]Stack different variables on on graph using stat_summary (ggplot)

上下文 :我想以圖形方式比較實驗期間工作量和信任度隨時間的變化。 時間用2個方塊表示。

問題 :我正在嘗試在同一張圖上繪制具有不同單位的不同變量,以比較演變。 我只發現它適用於geom_line,但不適用於stat_summary。

數據 :x是代表時間的“塊”(2個塊)。 y所使用的變量是“工作量”和“信任”(從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))

感謝您提供任何寶貴的時間來回答這個問題。

祝你今天愉快!

派克賽爾

建議您在繪圖之前匯總一下數據。 在這里考慮:

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM