【问题标题】:ggplot2 - Multiple Boxplots from Sources of Different Lengthsggplot2 - 来自不同长度来源的多个箱线图
【发布时间】:2014-11-13 21:03:44
【问题描述】:

我有几个不同长度的向量,我想使用 ggplot2 生成并排的箱线图。这与基本绘图系统有关。然而 ggplot2 仅将单个数据帧作为输入,这很难从不同长度的数据中创建。

a <- rnorm(10)
b <- rnorm(100)
c <- rnorm(1000)
boxplot(a, b, c)

问:使用 ggplot2 使用不同长度的数据绘制箱线图的正确方法是什么?


【问题讨论】:

    标签: r boxplot


    【解决方案1】:

    ggplot 使用整齐的长数据框,并将组(如 a、b 或 c)保存为单独的列。在您的示例中,您可以创建一个包含 1110 行 (10 + 100 + 1000) 和两列(值和组)的数据框,如下所示:

    # Make individual data frames
    a <- data.frame(group = "a", value = rnorm(10))
    b <- data.frame(group = "b", value = rnorm(100))
    c <- data.frame(group = "c", value = rnorm(1000))
    
    # Combine into one long data frame
    plot.data <- rbind(a, b, c)
    
    #   group      value
    # 1     a  0.2322682
    # 2     a -0.9681992
    # ...
    # 101   b  0.3422354
    # 102   b  0.3495342
    # ...
    # 1001  c -0.6839231
    # 1002  c -1.4329843
    
    # Plot
    library(ggplot2)
    ggplot(plot.data, aes(x=group, y=value, fill=group)) + geom_boxplot()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-05
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多