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

jtools包plot_summs开密度图时xlim/scale_x_continuous不生效问题咨询

问题原因

开启plot.distributions = TRUE后,plot_summs()内部会先生成全范围的系数密度曲线,再将密度曲线作为附加图形嵌入画布两侧:

  • 后续叠加的xlim()、scale_x_continuous()会被内部图层的默认范围设置覆盖,因此不生效
  • coord_cartesian()仅裁剪显示区域,不会移除超出范围的密度曲线部分,也不会收缩画布原本为全范围密度预留的展示边距,因此会出现大量空白
解决方案

方案1:使用内置参数限定范围(推荐)

直接将x轴范围通过xlim参数传入plot_summs(),内部计算密度时就会按指定范围生成,不会产生多余内容,也不需要额外调整图层:

library(jtools)
library(ggplot2)

test <- lm(mpg ~ cyl, data = mtcars)
plot_summs(test, plot.distributions = TRUE, xlim = c(-5, 5))

如果仍有少量边距空白,可叠加主题参数调整边距:

plot_summs(test, plot.distributions = TRUE, xlim = c(-5, 5)) +
  # 四个参数依次对应上、右、下、左的边距,可根据实际显示效果调整
  theme(plot.margin = unit(c(0.3, 0.1, 0.3, 0.1), "cm"))

方案2:手动修改ggplot对象(适配旧版本jtools)

如果使用的jtools版本较低不支持内置xlim参数,可直接修改生成的ggplot对象的坐标限制:

p <- plot_summs(test, plot.distributions = TRUE)
# 直接修改坐标范围配置
p$coordinates$limits$x <- c(-5, 5)
# 调整边距移除空白
p <- p + theme(plot.margin = unit(c(0.3, 0.1, 0.3, 0.1), "cm"))

p

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:09:02