You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的ggplot绘制带分组变量的A/B测试结果散点图?

解决方案

你的代码问题在于将x轴和y轴都指定为同一列results,导致所有点的x、y值完全相同,自然无法得到A、B测试阶段结果对应的散点图。核心是需要让x轴对应A阶段的结果列,y轴对应B阶段的结果列,这需要先确保数据结构正确,再绘制图形。

情况1:数据集为长格式(包含受试者、测试阶段、结果三列)

如果你的数据是类似以下的长格式(每个测试阶段对应一行):

# 示例长格式数据
data <- data.frame(
  subject = rep(1:4, each = 2),
  test_stage = rep(c("A", "B"), 4),
  results = c(5,7,6,8,4,6,7,9)
)

需要先将数据转换为宽格式(每个受试者一行,A、B阶段结果各为一列),再绘制散点图:

# 加载所需包
library(ggplot2)
library(tidyr)

# 转换为宽格式
wide_data <- pivot_wider(data, names_from = test_stage, values_from = results)

# 绘制散点图
ggplot(wide_data, aes(x = A, y = B)) +
  geom_point(size = 3) +  # 可选:调大点的尺寸,更清晰
  labs(x = "A测试阶段结果", y = "B测试阶段结果", title = "A、B测试阶段结果散点图") +
  theme_minimal()

情况2:数据集已经是宽格式(A、B阶段结果各为一列)

如果你的数据已经是宽格式(比如包含subject、A_result、B_result这类列),直接指定x轴和y轴对应的列即可:

library(ggplot2)

# 假设宽格式数据列名为A和B
ggplot(data, aes(x = A, y = B)) +
  geom_point() +
  labs(x = "A测试阶段结果", y = "B测试阶段结果")

内容的提问来源于stack exchange,提问作者Siyu Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:22:32