如何使用ggplot绘制具有两个因素的数据图?

问题描述 投票:0回答:1
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)) 

上面是我为我的数据制作的汇总表。我正在尝试将其映射到折线图上。这是一张图片,向您展示我想要的样子:

Image 1

基本上,我想要 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))

这就是我最终得到的结果: Image 2

我该如何解决这个问题?预先感谢。

r ggplot2 anova
1个回答
0
投票

您希望将

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

© www.soinside.com 2019 - 2024. All rights reserved.