如何在格子bwplot中手动设置多个箱线图的比例?

时间:2014-11-11 11:09:53

标签: r lattice

我已经得到了聚类的结果,并决定使用晶格为每个聚类制作一个箱形图。 接下来,我面临着建立所有集群箱图可接受的规模的需求。

First attempt

找到一个解决方案,允许排除异常值并设置自由关系。

library(lattice)
trellis.device(new=FALSE, col=FALSE)

bwplot(value ~ variable | Cluster, data = test, 
       layout = c(2,2), 
       prepanel = function(x, y) {
               bp <- boxplot(split(y, x), plot = FALSE)
               ylim <- range(bp$stats)
               list(ylim = ylim) },
       scales = list(y = list(relation = "free")),
       do.out = F)

所以,我有很好的情节,但如果我手动设置每个情节的ylim,它会更好。例如,我的数据中只有整数值,而左上方群集图中的值0.5则没有意义。 Second

那么,有没有办法在bwplot参数中设置多个ylim?

1 个答案:

答案 0 :(得分:6)

来自?bwplot下的文档:

  

xlim也可以是一个列表,其中包含与面板数量一样多的组件(如果需要,可以回收),每个组件如上所述。仅当scales$x$relation"free"时,这才有意义,在这种情况下,这些内容被视为由预付款计算返回的相应限制组件。

ylim参数具有y轴的相应功能。

因此,在relation = "free"参数中设置scales,然后将列表传递给ylim参数,以便为每个面板单独设置y轴限制:

bwplot(len ~ factor(dose) | supp, data = ToothGrowth,
    scales = list(relation = "free"),
    ylim = list(c(5, 31), c(0, 36)))

enter image description here