我有一个包含有序数据的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。
感谢您的帮助。
答案 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))))