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

如何将interact_plot生成的置信区间丝带改为上下界虚线

解决方案

核心逻辑是先移除默认的丝带图层,再基于绘图内置的置信区间上下限数据新增虚线图层,无需额外拟合计算。

方案1:仅保留上下界虚线(无多余边框,推荐)

library(lme4)
library(tidyverse)
library(interactions)
data(VerbAgg)
mv <- glmer(r2 ~ Anger * mode + (1 | item), data = VerbAgg,
             family = binomial,
             control = glmerControl("bobyqa"))
p = interact_plot(mv, pred = Anger, modx = mode, vary.lty = FALSE, interval = TRUE, types = c("solid", "solid"))

# 移除默认的置信区间丝带图层(summary显示ribbon为第2个图层)
p$layers[[2]] <- NULL

# 新增上下界虚线
p <- p + 
  geom_line(data = p$data, aes(y = ymin, color = mode, group = mode), linetype = "dashed") +
  geom_line(data = p$data, aes(y = ymax, color = mode, group = mode), linetype = "dashed")

p
  • 绘图对象p的内置数据p$data已经包含计算好的置信区间上下界ymin、ymax,直接调用即可
  • 虚线默认继承原有的分组配色规则,和主效应线一一对应
  • 可在geom_line中添加size参数调整虚线粗细,添加alpha参数调整透明度

方案2:修改原有丝带图层(无需新增图层)

如果不需要删除原有图层,也可以直接修改丝带的参数,隐藏填充仅保留虚线边界:

# 隐藏丝带填充
p$layers[[2]]$aes_params$alpha <- 0
# 设置边界为虚线
p$layers[[2]]$aes_params$linetype <- "dashed"
# 调整边界线粗细
p$layers[[2]]$aes_params$size <- 0.8

p

注意:该方案会保留丝带的完整闭合边框,包括左右两端的竖线,视觉上不如方案1干净。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:45:08