df <- data.frame(mean_rt = c(270.4860, 377.4106, 274.7234, 371.7627), sd_rt = c(33.66426, 53.43924, 35.04275, 51.0443), block = c(1, 1, 2, 2), task = c(1, 2, 1, 2))
上面是我为我的数据制作的汇总表。我正在尝试将其映射到折线图上。这是一张图片,向您展示我想要的样子:
基本上,我想要 x 轴上的块变量和 y 轴上的 rt 变量,并带有误差线。
为了实现这一点,我编写了以下代码:
ggplot(summary_rt, aes(block, mean_rt, color = task)) +
geom_line() +
geom_errorbar(aes(ymin=mean_rt-sd_rt, ymax=mean_rt+sd_rt))
我该如何解决这个问题?预先感谢。
您希望将
block
和 task
视为因子。由于数据框中的列是数字,因此 ggplot2
将它们用作连续变量。您可以 mutate()
将类型强制为字符或因子,或者在绘图函数中调用 factor()
,例如:
library(ggplot2)
library(dplyr)
df %>%
mutate(across(c(block, task), factor)) %>%
ggplot(aes(block, mean_rt, color = task, group = task)) +
geom_line() +
geom_errorbar(aes(ymin = mean_rt-sd_rt,
ymax = mean_rt+sd_rt),
width = 0.2) +
geom_point() +
labs(x = 'block',
color = 'task')
创建于 2023-09-23,使用 reprex v2.0.2