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

如何调整R中mcmc_combo多变量绘图的输出尺寸

解决mcmc_combo()多变量后验绘图的尺寸适配问题

问题场景

使用bayesplot包的mcmc_combo()绘制多变量后验抽样的轨迹图+密度图时,图形尺寸不会随变量数量自动缩放,导致图表被截断、Y轴完全无法显示;改用lapply()逐个绘制单变量图时,绘图窗口尺寸固定,图形被强制拉伸变形。需求为固定单个子图的尺寸,让整体绘图窗口自适应变量数量调整。


解决方案

方法1:用patchwork拼接子图,精准控制单图尺寸

借助patchwork包的绘图拼接能力,生成每个变量的独立组合图后,统一设置单图尺寸,整体窗口会自动适配子图数量。

library(cmdstanr)
library(bayesplot)
library(dplyr)
library(patchwork)

# 提取目标变量的后验抽样数据
draws <- fit2$draws(
    variables = param[-5],
    inc_warmup = TRUE,
    format = "df"
)
pars <- grep("lam", names(draws), value = TRUE)

# 生成每个变量的mcmc_combo子图,微调边距避免重叠
plot_list <- lapply(pars, function(x) {
    mcmc_combo(draws, pars = x) +
        theme(plot.margin = margin(5, 5, 5, 5))
})

# 纵向拼接子图,固定每个子图的高度,整体自适应
wrap_plots(plot_list, ncol = 1, heights = rep(3, length(pars)))
  • heights = rep(3, length(pars)):给每个子图分配固定高度(数值代表相对比例,可根据需求调整)
  • ncol = 1:子图纵向排列,整体绘图窗口高度会随变量数量自动增加

方法2:动态设置绘图设备尺寸

如果需要导出图形文件,可根据变量数量动态计算设备的高度/宽度,确保每个子图有足够显示空间。

library(cmdstanr)
library(bayesplot)
library(dplyr)

draws <- fit2$draws(
    variables = param[-5],
    inc_warmup = TRUE,
    format = "df"
)
pars <- grep("lam", names(draws), value = TRUE)

# 按变量数量计算设备高度:每个变量分配600像素高度(可按需调整)
n_pars <- length(pars)
png("mcmc_combo_plots.png", width = 800, height = 600 * n_pars)

# 绘图并调整子图间距
mcmc_combo(draws, pars = pars) +
    theme(panel.spacing = unit(1, "lines"))

dev.off()
  • 此方法适用于导出png、pdf等格式的图形文件,输出文件的尺寸会随变量数量自动适配,避免截断。

方法3:调整ggplot2分面与主题参数

mcmc_combo基于ggplot2实现,可通过修改分面缩放规则和主题间距,优化多变量显示效果:

library(cmdstanr)
library(bayesplot)
library(dplyr)

draws <- fit2$draws(
    variables = param[-5],
    inc_warmup = TRUE,
    format = "df"
)
pars <- grep("lam", names(draws), value = TRUE)

mcmc_combo(draws, pars = pars) +
    facet_wrap(~parameter, scales = "free", ncol = 1) +
    theme(
        panel.spacing = unit(1, "lines"),
        plot.margin = margin(10, 10, 10, 10)
    )
  • scales = "free":让每个子图的Y轴自适应变量范围
  • panel.spacing:增大子图间的垂直间距,避免重叠

内容的提问来源于stack exchange,提问作者Pål Bjartan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 09:15:29