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

如何在分面布局中让两个slab几何对象共享厚度刻度?

解决ggdist分面中后验与先验密度积分一致且y轴自由的问题

要实现同一分面内后验直方图和先验PDF的积分匹配,同时让不同分面的y轴刻度自由调整,关键是让厚度共享逻辑仅作用于单个分面内部,而非全局。以下是具体实现:

最终代码

samples %>% 
  ggplot() + 
  # 后验样本的密度直方图,指定group为parameter
  stat_slab(aes(x = value, group = parameter), density = "histogram") +
  # 先验PDF曲线,同样绑定group到parameter
  stat_slab(data = pdfs, aes(xdist = pdf, group = parameter), 
            color = "black", fill = NA) +
  # 开启组内厚度共享,确保同一分面内的密度积分一致
  scale_thickness_shared(renormalize = "groups") +
  facet_wrap(vars(parameter), scales = "free") +
  labs(x = "value", y = "density",
       title = "分面内积分一致,跨分面y轴自由缩放",
       subtitle = "基于group实现分面内的厚度归一化")

方案原理

  • group = parameter:把每个参数对应的分面作为独立的分组单元,让scale_thickness_shared()只在同一个分组(分面)内统一密度尺度,保证该面板里的后验直方图和先验PDF积分相同。
  • renormalize = "groups":明确要求ggdist在每个分组内重新归一化密度,这样不同分组(分面)的密度尺度完全独立,y轴就能根据各自的密度范围自由调整。

这个方案完美匹配你用基础绘图实现的效果:同一面板内的直方图和PDF可以直接对比密度高低,不同面板的y轴刻度根据参数的分布范围自动适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 13:33:27