如何在R中按d垂直堆叠sjPlot生成的交互面板?
解决sjPlot四元交互预测图按变量d垂直堆叠面板的问题
你可以通过以下步骤实现需求:sjPlot的plot_model函数返回的是标准ggplot2对象,因此可以直接用ggplot2的分面函数调整面板布局。
具体代码实现
# 重命名iris数据集列名 colnames(iris) <- c("y", "a", "b", "c", "d") # 拟合包含四元交互项的线性模型 m0 <- lm(y ~ a * b * c * d, data = iris) # 生成预测图并保存为ggplot对象 p <- sjPlot::plot_model(m0, type = "pred", terms = c("a", "b", "c", "d")) # 按变量d垂直堆叠面板:将d作为行维度,c作为列维度 p + ggplot2::facet_grid(d ~ c) # 若希望所有面板完全垂直排列(每个d的c面板都在一列中),可改用facet_wrap # p + ggplot2::facet_wrap(~ d + c, ncol = 1)
关键说明
plot_model返回的是ggplot2对象,因此支持用+添加ggplot2的任意调整项,包括分面设置。facet_grid(d ~ c)会将d的不同水平作为垂直方向的行,c的不同水平作为水平方向的列,实现按d垂直分组堆叠。- 如果需要更紧凑的垂直布局,
facet_wrap(~ d + c, ncol = 1)会把所有面板按d分组后垂直排列成一列。
内容的提问来源于stack exchange,提问作者Juan_814
相关产品推荐
相关产品推荐

