You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R Lattice:分组堆叠/叠加bwplot绘制实现问题咨询

我帮你把这段实现带分组回归线的箱线图的代码整理好了,还补充了关键部分的说明,方便你理解和使用:

实现带分组回归线的垂直箱线图

这段R代码可以生成按分组区分颜色、并为每组添加线性回归线的垂直箱线图,下面是完整可运行的代码:

# 生成模拟数据
vcDeciles <- ceiling(runif(100, 1, 10))
vcY <- runif(100, 0, 10)
vcPlotGroups <- sample(c("Pre", "Post", "Both"), 100, 1)
vcPlotColors <- 1:length(levels(as.factor(vcPlotGroups)))

# 绘制带分组回归线的箱线图
print(bwplot(vcY ~ vcDeciles,
             ylim = c(min(vcY), max(vcY)),
             horizontal = F,
             main = "test",
             groups = vcPlotGroups,
             col = vcPlotColors,
             panel = function(x, y, ...) {
               panel.superpose(x, y, ...,
                               panel.groups = function(x, y, col, ...) {
                                 panel.bwplot(x, y, col = col, ...)
                                 panel.abline(lm(y ~ x), col.line = col)
                               })
             },
             key = list(space = "right",
                        text = list(c("Pre", "Post", "Both")),
                        rectangles = list(col = vcPlotColors))))

关键代码细节说明

  • 数据生成:用runif()和sample()生成了三组模拟数据,分别对应横轴分位数、纵轴数值和分组类别
  • 核心绘图参数:
    • horizontal = F 强制箱线图为垂直方向,默认是水平的
    • groups = vcPlotGroups 指定分组变量,让不同组的箱线用预设颜色区分
  • 自定义面板函数:
    • 嵌套使用panel.superpose()和自定义panel.groups,实现先绘制对应颜色的箱线图,再为每组单独拟合并添加线性回归线(panel.abline(lm(y~x)))
  • 图例补充:添加了key参数生成右侧图例,明确不同颜色对应的分组类别

内容的提问来源于stack exchange,提问作者Pablo Boswell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:28:39