如何用R绘制展示7名参与者pre/post得分的折线图
R绘制干预前后得分折线图教程
步骤1:创建示例数据
作为新手,先从模拟数据入手,你可以直接复制运行代码,之后替换成自己的真实数据即可:
# 生成7名参与者的标识 participant <- paste0("参与者", 1:7) # 示例干预前得分 pre_score <- c(35, 42, 38, 45, 30, 40, 37) # 示例干预后得分 post_score <- c(48, 50, 45, 52, 40, 47, 42) # 合并为数据框(R中常用的数据存储格式) data <- data.frame(participant, pre_score, post_score)
步骤2:转换数据格式(关键)
R的主流绘图工具更适配长格式数据,我们需要把当前的宽格式数据转换为长格式:
# 先安装并加载tidyr包(用于数据格式转换) install.packages("tidyr") library(tidyr) # 将宽格式转长格式 long_data <- pivot_longer(data, cols = c(pre_score, post_score), names_to = "time_point", values_to = "score")
步骤3:用ggplot2绘制折线图
ggplot2是R中最易用的绘图包,我们用它来生成你需要的折线图:
# 安装并加载ggplot2包 install.packages("ggplot2") library(ggplot2) # 绘制折线图 ggplot(long_data, aes(x = participant, y = score, group = time_point, color = time_point)) + geom_line(size = 1) + # 绘制折线,设置线宽 geom_point(size = 3) + # 绘制数据点,设置点大小 labs(title = "参与者干预前后得分对比", x = "参与者", y = "得分", color = "时间点") + theme_minimal() + # 使用简洁的主题样式 scale_color_manual(values = c("pre_score" = "#2E86AB", "post_score" = "#F24C4C")) # 自定义前后得分的颜色
额外说明
group = time_point参数确保每条折线对应同一个时间维度的得分- 你只需要把示例中的
pre_score和post_score替换成自己的真实数据即可复用代码 - 如果想调整图表样式(比如标题大小、坐标轴字体),可以在
theme()函数里添加对应参数修改
内容的提问来源于stack exchange,提问作者JacobHad
相关产品推荐
相关产品推荐

