【问题标题】:How to plot grouped bar graph of the following form如何绘制以下形式的分组条形图
【发布时间】:2017-04-24 14:14:58
【问题描述】:

我有一个表单的数据框

|group|label1|label2|...|
|-----|------|------|---|
|groupname|value|value|...|
|groupname|value|value|...|

我想要做的是绘制一个 par 图,其中 label1、label2 等位于 x 轴上,y 轴是值(0 到 1 之间的频率),并且 groupname 字段用作条形图的组 ID。我不知道该怎么做。我是否需要重塑这些数据才能做到这一点?

编辑:我在 R-studio 中包含了数据的快照,以防我对数据框外观的解释不清楚。

【问题讨论】:

    标签: r


    【解决方案1】:

    确实,您需要先重新组合数据(我使用了 tidyr 包中的函数)。

    这是我使用的一些数据(下次您应该提供一些示例数据,这对我们回答您的问题很有帮助!)

    require(ggplot2)
    require(tidyr)
    
    dat <- data.frame(
      "id" = c("g1", "g2", "g3"),
      "AA" = runif(3),
      "AB" = runif(3))
    
    dat_new <- dat %>% 
      gather(key = "labels", value = "value", AA:AB)
    

    注意:我不太确定你想要你的情节,但这里有两种可能性。有你想要的吗?

    第一个情节

    如果你想要分面:

    ggplot(dat_new, aes(x = labels, y = value)) +
      geom_col(width = 0.2) + 
      facet_grid(id ~ .)
    

    第二个情节

    如果你想按颜色分组:

    ggplot(dat_new, aes(x = labels, y = value, fill = id)) +
      geom_col(position = "dodge") 
    

    【讨论】:

    • 你的数据框在转换之前是什么样子的?
    • 只需将我的代码复制并粘贴到您的控制台中并查看它
    猜你喜欢
    • 2018-01-06
    • 2021-11-25
    • 2021-10-13
    • 1970-01-01
    • 2020-12-09
    • 2021-01-12
    • 2011-10-17
    • 2012-10-23
    相关资源
    最近更新 更多