【问题标题】:Retained order from data.frame in boxplot箱线图中data.frame的保留顺序
【发布时间】:2014-04-24 19:19:53
【问题描述】:

我有一个包含有序数据的 data.frame。当我在箱线图中绘制它时,它会自动按箱线图的字母顺序排序。

有没有办法在绘图中保留 data.frame 中的顺序?

data.frame(按日期排序):

  Date       ID         Rate         Label
20131103    54232        98        54232 20131103
20131223    32123        94        32123 20131223
20140101    12345        89        12345 20140101

箱线图:

boxplot(data_set$Rate ~ data_set$Label,
        data=data_set,
        col="yellow",
        main=Rate Trend,
        las=2, pch=0, outcol="red",
        par(mar = c(12, 5, 4, 2)+ 0.1))

以上代码,自动按ID对数据进行排序,而不是使用data.frame中的顺序。 有没有办法在箱线图中保留 data.frame 中的顺序?我正在使用 R v2.12.2。

感谢您的帮助。

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    一种简单的方法是分解Label

    data_set$Label <- factor(data_set$Label,levels=unique(data_set$Label))
    

    那就用自己的代码来绘制吧!

    boxplot(data_set$Rate ~ data_set$Label,
            data=data_set, col= "yellow", main="Rate Trend",
            las=2, pch=0, outcol="red",
            par(mar = c(12, 5, 4, 2)+ 0.1))
    

    【讨论】:

      【解决方案2】:

      这是由于因素标签的水平顺序。一种可能:

      with(data_set, boxplot(Rate ~ factor(Label, levels=unique(Label)), 
          col="yellow",
          main="Rate Trend",
          las=2, pch=0, outcol="red",
          par(mar = c(12, 5, 4, 2)+ 0.1)))
      

      【讨论】:

        【解决方案3】:

        我认为 Shambho 和 droopy 是对的,+1 - 或者,您可以考虑使用 at 参数对定位进行更细粒度的控制(另请注意 ToothGrowth 底部的 ?boxplot 示例) :

        with(iris[nrow(iris):1,], 
          boxplot(Sepal.Length ~ Species,at=order(unique(Species))))
        

        【讨论】:

          猜你喜欢
          • 2013-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-08
          • 2017-06-03
          相关资源
          最近更新 更多