0

我有一个包含 3 列的数据框(df):

test1   test2    res
500    23        30.75
200    23        31.36
110    26        30.38
105    23        31.57
55     21        33.56
35     21        31.39
27     18        36.89
23     23        35.44 

我想要一个图表包含两个结果的箱线图。我已经根据“ res”融化了数据并调用了新的(df_melt),我得到了以下信息:

res      variable  value
30.75     test1   500    
31.36     test1   200
30.38     test1   110
31.57     test1   105
33.56     test1    55
31.39     test1    35
36.89     test1    27
35.44     test1    23
30.75     test2    23
31.36     test2    23
30.38     test2    26
31.57     test2    23
33.56     test2    21
31.39     test2    21
36.89     test2    18
35.44     test2    23 

现在,我想根据变量列对数据进行箱线图,x 轴 = res,y 轴 = 值。因此,我希望每个“ res”值有两个箱线图,因为我在变量中有两种类型的数据(ietest1 和 test2)。

我试过这个:

boxplot(df_melt$value~df_melt$res)

我只有 8 个箱线图,不清楚是哪个测试???我如何将第二个测试添加到图表中以便我可以比较它们。

我想将它们放在一起以便比较它们的全部原因....

4

1 回答 1

0

我想您正在寻找条形图,因为您无法基于单个值生成箱线图。

library(ggplot2)

ggplot(df_melt, aes(x = factor(res), y = value, fill = variable)) +
  geom_bar(stat="identity", position="dodge")

在此处输入图像描述


更新:基于 OP 评论的箱线图解决方案:

可以使用以下方法生成具有多个不同颜色的箱线图的类比图:

ggplot(df_melt, aes(x = factor(res), y = value, fill = variable)) +
  geom_boxplot() +
  scale_fill_manual(values = c("white", "darkgray"))

请注意,仅当和values的每个组合都有多个值时,此图才有意义。resvariable

箱线图的颜色将是白色和深灰色。scale_fill_manual您可以使用该功能修改颜色。

于 2012-11-20T08:02:24.040 回答