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

如何优化多参数对数正态分布可视化以提升辨识度?

对数正态分布可视化优化方案

针对9组对数正态分布密度图重叠严重、形状难以区分的问题,推荐以下几种可视化方案,附R代码示例(假设你的参数数据框名为params,包含group(v1-v9)、meanlog、sdlog三列):


1. 分面独立展示

把每个组的密度图放在单独子图里,彻底避免重叠,方便逐个对比分布形状:

library(ggplot2)
library(dplyr)
library(tidyr)

# 模拟数据
set.seed(123)
sim_data <- params %>%
  rowwise() %>%
  mutate(sim = list(rlnorm(n = 1000, meanlog = meanlog, sdlog = sdlog))) %>%
  unnest(sim)

# 分面密度图
ggplot(sim_data, aes(x = sim)) +
  geom_density(fill = "#2c3e50", alpha = 0.7) +
  facet_wrap(~group, scales = "free_x") + # 按组分面,x轴可自由缩放
  labs(x = "模拟值", y = "密度", title = "各组对数正态分布密度图(分面展示)") +
  theme_minimal()

2. 增强密度图的区分度

通过调整透明度、线条样式、添加统计标记来提升重叠图的可读性:

ggplot(sim_data, aes(x = sim, fill = group, color = group)) +
  geom_density(alpha = 0.2) + # 降低填充透明度,保留重叠可见性
  geom_vline(data = params %>% mutate(median = exp(meanlog)), 
             aes(xintercept = median, color = group), linetype = "dashed") + # 添加中位数线
  scale_fill_viridis_d(option = "plasma") + # 使用高区分度的配色
  scale_color_viridis_d(option = "plasma") +
  labs(x = "模拟值", y = "密度", title = "对数正态分布密度图(带中位数标记)") +
  theme_minimal() +
  theme(legend.position = "bottom")

3. QQ图对比分布形状

对数正态分布的QQ图(先对数转换为正态分布)能直观展示各组与理论分布的偏差,适合对比形状:

# 对数转换后做QQ图
sim_data_log <- sim_data %>% mutate(log_sim = log(sim))

ggplot(sim_data_log, aes(sample = log_sim, color = group)) +
  stat_qq() +
  stat_qq_line() +
  facet_wrap(~group) +
  labs(title = "各组对数正态分布QQ图(对数转换后)") +
  theme_minimal()

4. 小提琴图+箱线图组合

结合小提琴图的密度展示和箱线图的分位数标记,同时呈现分布形状和统计特征:

ggplot(sim_data, aes(x = group, y = sim, fill = group)) +
  geom_violin(alpha = 0.7) +
  geom_boxplot(width = 0.2, color = "black") + # 箱线图叠加在小提琴图上
  scale_fill_viridis_d(option = "plasma") +
  labs(x = "组别", y = "模拟值", title = "对数正态分布小提琴图+箱线图") +
  theme_minimal() +
  theme(legend.position = "none")

5. 累积分布函数(CDF)曲线

CDF曲线比密度图更不容易重叠,能清晰展示各组分布的累积概率差异:

ggplot(sim_data, aes(x = sim, color = group)) +
  stat_ecdf(geom = "step", size = 1) + # 绘制阶梯状CDF
  labs(x = "模拟值", y = "累积概率", title = "对数正态分布CDF曲线") +
  theme_minimal() +
  theme(legend.position = "bottom")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:33:24