【问题标题】:How to put Values on Boxplot in R for several boxplot in one image如何将值放在 R 中的 Boxplot 上,以便在一张图像中使用多个箱线图
【发布时间】:2014-11-01 19:24:31
【问题描述】:

我想在 R 中绘制 Delta~Project.Types。我有 10 个项目类型。我知道如何做箱线图: 箱线图(Delta~Project.Types)。但是,如何在每个箱线图上放置五位数(最小值、最大值、第 1、第 2 和第 3 分位数)?我该怎么做才能使图像的每个箱线图都显示其五个数字?显示值时比较箱线图会更容易

谢谢!

【问题讨论】:

    标签: r compare boxplot


    【解决方案1】:

    您想要的统计数据也可以通过fivenum获得

    five <- by(InsectSprays$count, InsectSprays$spray, fivenum)
    do.call(cbind, five)
    #         A    B   C    D   E  F
    # [1,]  7.0  7.0 0.0  2.0 1.0  9
    # [2,] 11.0 12.0 1.0  3.5 2.5 12
    # [3,] 14.0 16.5 1.5  5.0 3.0 15
    # [4,] 18.5 18.0 3.0  5.0 5.0 23
    # [5,] 23.0 21.0 7.0 12.0 6.0 26
    

    或者,这些统计数据是boxplot 的返回值之一(请注意,您需要使用range = 0 来获取最小值和最大值,因为有些值是异常的):

    bp <- boxplot(count ~ spray, data = InsectSprays, col = "lightgray", range = 0)
    bp$stats
    #      [,1] [,2] [,3] [,4] [,5] [,6]
    # [1,]  7.0  7.0  0.0  2.0  1.0    9
    # [2,] 11.0 12.0  1.0  3.5  2.5   12
    # [3,] 14.0 16.5  1.5  5.0  3.0   15
    # [4,] 18.5 18.0  3.0  5.0  5.0   23
    # [5,] 23.0 21.0  7.0 12.0  6.0   26
    

    然后只需添加到每个框:

    text(x = col(bp$stats) - .5, y = bp$stats, labels = bp$stats)
    

    【讨论】:

      【解决方案2】:

      您可以将“图例”添加到包含您想要的内容的基本 R 图中,如下所示:

      legend("topright", bty = "n", legend = summary(Delta))
      

      我假设您正在运行 summary() 是“Delta”,因此请根据需要进行更改。您可以使用 paste() 修改图例中显示的内容的外观,即

      legend("topright", bty = "n", legend = c(paste("min =", summary(Delta)[1]),
                                           paste("max =", summary(Delta)[2])))
      

      等等

      【讨论】:

        猜你喜欢
        • 2015-08-29
        • 1970-01-01
        • 1970-01-01
        • 2020-12-03
        • 2013-01-14
        • 2023-01-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多