【问题标题】:Stack different variables on on graph using stat_summary (ggplot)使用 stat_summary (ggplot) 在图上堆叠不同的变量
【发布时间】:2017-10-10 15:30:48
【问题描述】:

上下文:我想以图形方式比较实验期间工作量和信任度随时间的演变。时间由 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))

感谢任何人花一点时间尝试回答这个问题。

祝你有美好的一天!

像素

【问题讨论】:

  • 您在 geom 周围缺少引号。试试geom = "line"
  • 感谢您指出这一点。然而,只有在我写这篇文章时,我才把引号放在 R 中。
  • 代码(使用“行”)对我来说运行良好。结果不是您正在寻找的结果,还是您收到错误或...?
  • 抱歉之前的评论,它确实有效。我被愚弄了,因为我正在使用我的整个数据集,并且我有一个空白图表,上面有警告“每个组只包含一个观察结果”。我处理了它,现在它工作得很好。谢谢=)我最后一件事:你知道如何添加颜色吗?如果我在 stat_summary 美学中尝试例如“color = 'whateverColorIWant'”,它只使用正常的颜色集(红色,然后是蓝色,然后......)并显示一个带有颜色和相应名称“whateverColorIWant”的图例.
  • 要将颜色设置为常量,请将 color 移到 aes 之外。

标签: r ggplot2 graph statistics summary


【解决方案1】:

我建议在绘图之前汇总您的数据。在这里考虑:

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

【讨论】:

  • 感谢您的回答。确实,这是一种可能。然而,正如我在原帖中所说,这并不能完全让我满意,部分原因是我无法绘制误差线,因为我只有平均值。
  • 你也可以在上面调用summarise而不是使用stat.summary时直接计算你的标准误差
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 2018-04-01
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多