【问题标题】:Add name to boxplot in R将名称添加到 R 中的箱线图
【发布时间】:2014-08-31 07:02:35
【问题描述】:

此问题与:R: how to label the x-axis of a boxplot

当绘制多列时,会出现名称。但是当只绘制一列时,名称不会出现,即使使用 names=.. 参数:

ddf = structure(list(apple = c(1, 2, 3, 4, 5), banana = c(5, 4, 3, 
 2, 1), watermelon = c(4, 5, 6, 7, 8)), .Names = c("apple", "banana", 
 "watermelon"), row.names = c(NA, -5L), class = "data.frame")

 ddf
  apple banana watermelon
1     1      5          4
2     2      4          5
3     3      3          6
4     4      2          7
5     5      1          8


boxplot(ddf[,1:2])
boxplot(ddf[,1])

以下也行不通:

boxplot(ddf[,1], names='apple')
boxplot(ddf[,1], names=c('apple'))

当只使用一列时,如何向箱线图添加名称?感谢您的帮助。

【问题讨论】:

    标签: r plot boxplot


    【解决方案1】:

    bxp 有一个 show.names= 参数,boxplot 调用该参数。你可以这样做:

    boxplot(ddf[1], show.names=TRUE)
    

    请确保这是 ddf[1] 而不是 ddf[,1],以便保留名称。

    【讨论】:

    • 为什么多列不需要 show.names=TRUE?这可以被认为是一个错误吗?
    • @rnso - 默认情况下,只有 1 个类别没有标签。我不会称其为错误,可能更多的是经过深思熟虑的设计选择。此外,使用ddf[,1] 将永远无法为您提供名称,因为它会返回一个未命名的向量,因为"[" 默认具有drop=TRUE
    【解决方案2】:

    也许你可以使用'xlab':

    boxplot(ddf[,1], xlab="apple")
    

    【讨论】:

      【解决方案3】:

      一种方法是使用mtext:

      boxplot(ddf[,1])
      mtext("apple", side=1, line=1)
      

      【讨论】:

        【解决方案4】:

        箱线图默认添加到x=1,因此您可以像绘制多列时那样将刻度和轴标签添加到x=1

        axis(side = 1, at = 1, labels = 'apple')
        

        【讨论】:

          【解决方案5】:

          我还将show.names 的解决方案用于 Boxplot{car}。就我而言,我想在一个箱线图中总结一些列并同时标记异常值,因此我使用了Boxplot

          Boxplot(df, show.names = T, names = "test samples", labels = rownames(df), id.method = c("y"), id.n=9)
          

          对于boxplot,如果您对数据框的名称感到满意,则无需支持show.names 的名称列表。对于Boxplot,您必须为绘图提供一个名称。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-05-26
            • 2016-04-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多