【问题标题】:Boxplot of two column in dataframe数据框中两列的箱线图
【发布时间】:2012-11-19 02:35:10
【问题描述】:

我有一个包含 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”值有两个箱线图,因为我在变量中有两种类型的数据(即 test1 和 test2)。

我已经试过了:

boxplot(df_melt$value~df_melt$res)

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

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

【问题讨论】:

    标签: r plot boxplot


    【解决方案1】:

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

    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 函数修改颜色。

    【讨论】:

    • 是的,您是箱线图,不能为单个值绘制。我已将数据修改为 X 的单个值具有多个值。是的,您是对的,箱线图不能为单个值绘制。我已将数据修改为对 X 的单个值具有多个值。它有效。我只需要知道如何控制不同结果的颜色。是否可以使用另一种区分两个结果箱线图的方法,例如阴影,所以当我以黑白打印图表时,我将能够看到两个不同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2020-11-29
    • 2021-01-25
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2018-12-05
    相关资源
    最近更新 更多