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

使用R包bayesplot的mcmc_areas()时修改特定后验分布的颜色

用bayesplot的mcmc_areas自定义特定参数后验分布配色方案

mcmc_areas()返回的是标准ggplot2对象,你可以直接叠加ggplot2的配色映射函数实现局部配色修改,不需要调整bayesplot的全局配色设置。

方案1:为单个指定参数绑定专属颜色

以将cyl参数后验分布设为蓝色、其余参数保持红色为例,实现代码如下:

# 加载依赖包
library(bayesplot)
library(ggplot2)

# 示例数据:替换为你自己的MCMC draws对象
x <- example_mcmc_draws(params = c("cyl", "disp", "hp", "drat"))

# 生成配色向量:默认全红,仅cyl设为蓝色
all_params <- dimnames(x)$parameter
fill_colors <- setNames(rep("red", length(all_params)), all_params)
fill_colors["cyl"] <- "blue"

# 绘图并叠加自定义配色
mcmc_areas(x) +
  scale_fill_manual(values = fill_colors)

如果需要修改分布的边界线颜色,把scale_fill_manual替换为scale_color_manual即可。

方案2:按参数分组统一配色

如果需要按参数分组分配不同颜色,可先建立参数与分组的映射关系,再生成对应配色向量:

# 建立参数-分组映射
group_map <- c(
  "cyl" = "发动机参数",
  "hp" = "发动机参数",
  "disp" = "底盘参数",
  "drat" = "底盘参数"
)
# 按分组分配颜色
group_color_rule <- c("发动机参数" = "blue", "底盘参数" = "red")
fill_colors <- group_color_rule[group_map[all_params]]

# 绘图
mcmc_areas(x) +
  scale_fill_manual(values = fill_colors)

注意事项

如果出现颜色与参数不匹配的情况,可在mcmc_areas()中添加sort = FALSE参数关闭默认的参数自动排序,保证参数顺序和配色向量的命名顺序一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:54:03