小编Rob*_*ert的帖子

R - 在boxplot中排序

我试图在R中生成一系列由2个因子分组的箱形图.我已经设法制作了情节,但我无法按正确的方向订购.

我使用的数据库看起来像这样:

Nitrogen    Species    Treatment
2           G          L
3           R          M
4           G          H
4           B          L
2           B          M
1           G          H
Run Code Online (Sandbox Code Playgroud)

我试过了:

boxplot(mydata$Nitrogen~mydata$Species*mydata$Treatment)
Run Code Online (Sandbox Code Playgroud)

按字母顺序排列方框(前三个是"高"处理,然后在这三个中按字母顺序按种类名称排序).

替代文字

我希望箱形图有序为低>中>高,然后在每个群中G> R> B为物种.

所以我尝试在公式中使用一个因子:

f = ordered(interaction(mydata$Treatment, mydata$Species), 
            levels = c("L.G","L.R","L.B","M.G","M.R","M.B","H.G","H.R","H.B")
Run Code Online (Sandbox Code Playgroud)

然后:

boxplot(mydata$Nitrogen~f)
Run Code Online (Sandbox Code Playgroud)

但是盒子仍然按照相同的顺序装鞋.标签现在不同了,但盒子没有移动.

我已经取出了每组数据并将它们一起单独绘制在一起:

lg = mydata[mydata$Treatment="L" & mydata$Species="G", "Nitrogen"]
mg = mydata[mydata$Treatment="M" & mydata$Species="G", "Nitrogen"]
hg = mydata[mydata$Treatment="H" & mydata$Species="G", "Nitrogen"]
etc ..

boxplot(lg, lr, lb, mg, mr, mb, hg, hr, hb)
Run Code Online (Sandbox Code Playgroud)

这给了我想要的东西,但我宁愿这样做在一个更优雅的方式,所以我没有去拉每一个出来单独进行更大的数据集.


可装载数据:

mydata <-
structure(list(Nitrogen = c(2L, 3L, …
Run Code Online (Sandbox Code Playgroud)

r boxplot

26
推荐指数
2
解决办法
9万
查看次数

标签 统计

boxplot ×1

r ×1