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
相关产品推荐
相关产品推荐

