【发布时间】:2018-07-09 20:23:25
【问题描述】:
我正在尝试创建一个线图,描绘两组/条件随时间推移的不同轨迹。我有两组在五个时间点(1、2、3、4、5)收集数据“吃”。 我希望这些线连接每个组在五个时间点的平均点,所以我在时间 1 有两个点,在时间 2 有两个点,依此类推。
这是一个可重现的例子:
#Example data
library(tidyverse)
library(ggplot2)
eat <- sample(1:7, size = 30, replace = TRUE)
df <- data.frame(id = rep(c(1, 2, 3, 4, 5, 6), each = 5),
Condition = rep(c(0, 1), each = 15),
time = c(1, 2, 3, 4, 5),
eat = eat
)
df$time <- as.factor(df$time)
df$Condition <- as.factor(df$Condition)
#Create the plot.
library(ggplot2)
ggplot(df, aes(x = time, y = eat, fill = Condition)) + geom_line() +
geom_point(size = 4, shape = 21) +
stat_summary(fun.y = mean, colour = "red", geom = "line")
问题是,我需要我的线条水平移动(即显示两条不同颜色的线条在 x 轴上移动)。但是这段代码只是垂直连接点:
如果我不将Time 转换为一个因子,而只将Condition 转换为一个因子,我会得到一堆乱码。同样的事情也发生在我的实际数据中。
我希望它在美学上看起来像这样,透明的错误信封包裹着每一行。但是,我不希望它是弯曲的,我希望线条是直的,连接每个点的手段。
【问题讨论】:
-
factors是离散的。您似乎想要一个连续的 x 轴,所以一个好的步骤是不将time转换为一个因子。 -
请说明您希望如何计算“错误信封”。
-
我希望有一种方法可以计算 +/-1 标准误差(或标准差)。
-
我也对您数据中“id”的含义感到困惑。你想要的两条线是什么 - 每个条件一条线?
id需要在剧情中说明吗? -
哦,不,id是参与者的id。它不需要被绘制。是的,我想要两行 - 每个条件一行。 x=时间,y=吃。