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

ggplot如何仅绘制多个直方图的轮廓以清晰区分重叠分布

R语言ggplot2实现重叠直方图仅保留加粗外轮廓方案

核心实现逻辑:规避原有geom_histogram生成的填充色、柱体竖线,直接绘制直方图的阶梯状上轮廓即可,我们可以用stat_bin直接计算分箱计数后调用阶梯线几何对象实现需求。

完整修改后代码

library(tidyverse)

A <- rnorm(n = 1000, mean = 0, sd = 1)
B <- rnorm(n = 1000, mean = 0.1, sd = 1.3)

tbl <- tibble(A, B) %>%
  pivot_longer(cols = everything(),
               names_to = "Distributions",
               values_to = "values")

ggplot(data = tbl, aes(x = values, color = Distributions)) + 
  # stat_bin计算分箱计数,用step几何对象绘制阶梯轮廓
  stat_bin(geom = "step", bins = 50, linewidth = 1.2, position = "identity") +
  theme_bw()

参数说明

  • 移除了原代码中的fill映射,自然不存在填充色
  • linewidth参数可自行调整,数值越大轮廓线越粗
  • bins参数和原代码保持一致,分箱规则完全匹配原直方图的分布呈现效果
  • 生成的图形仅保留不同分布直方图的上轮廓,无任何柱体竖线干扰,非常适合重叠分布的对比

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:54:03