从boxplot中的data.frame保留订单

时间:2014-04-24 07:24:10

标签: r dataframe

我有一个包含有序数据的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:

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中的顺序。 有没有办法在boxplot中保留data.frame中的顺序?我使用的是R v2.12.2。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

一种简单的方法是分解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))

答案 1 :(得分:1)

这是由于因子标签的级别顺序。一个可能性:

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)))

HTH

答案 2 :(得分:0)

我认为Shambho和droopy是对的,+ 1 - 或者您可以考虑使用at - 参数来更精细地控制定位(还要注意底部的ToothGrowth示例?boxplot):

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