绘制框图,用于将x轴排序为嵌套在R中的类别中的y值

时间:2015-04-30 17:05:10

标签: r plot ggplot2

假设我有一个数据框test

d1<-c(4.1,4.9,4.5,4.4,1.9,2.1,2.3,1.7,10.1,9.5,10.9,10.3,3.1,3.0,3.2,2.9)
d2<-c('a','a','a','a','b','b','b','b','c','c','c','c','d','d','d','d')
d3<-c(0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1)
test<-data.frame(d1,d2,d3)

如果我将箱形图作为d2的函数,我得到下图:

plot(d1~d2,data=test)

plot 1

但是,我想改变这个情节的两个方面:

(1)我希望它在0中用d3的值绘制两个观察值,然后绘制第一个,将值1绘制成第二个。

(2)我希望它按照y值的大小对每组中的观察结果进行排序。

正确的最终订单是a,c,b,d。

如果您可以根据d3变量添加颜色,则可获得奖励。

1 个答案:

答案 0 :(得分:1)

如果我理解你,你可以用ggplot2

来做到这一点
library(ggplot2)
ggplot(test, aes(x=reorder(d2,d3), y=d1, fill=factor(d3))) +
  geom_boxplot() 

这给出了: enter image description here

您可以在基础R中执行相同的tric:

plot(d1~reorder(d2,d3),data=test)