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

如何利用散点图与geom_density_2d绘制最外层密度曲线?

用ggplot2在散点图上实现带填充的密度区域效果

你目前的代码生成了散点+黑色密度轮廓线的图:

set.seed(1)
df <- data.frame(x = rnorm(200), y = rnorm(200))

ggplot(df, aes(x = x, y = y)) +
  geom_point() + 
  geom_density_2d()

示例图:
示例图

要达到你预期的带彩色填充密度区域的效果,只需调整图层顺序和使用填充型的密度函数,代码如下:

set.seed(1)
df <- data.frame(x = rnorm(200), y = rnorm(200))

ggplot(df, aes(x = x, y = y)) +
  # 先画填充的密度区域,设置透明度避免遮挡散点
  geom_density_2d_filled(alpha = 0.6) +
  # 再画散点,确保散点在最上层
  geom_point(color = "white", size = 1.2) +
  # 可选:调整配色方案
  scale_fill_viridis_d() +
  theme_light()

运行后就能得到和预期图一致的效果:
预期效果图

核心要点:

  • 使用geom_density_2d_filled()替代geom_density_2d(),生成带填充的密度轮廓
  • 图层顺序很重要:密度填充层放在散点层之前,这样散点会显示在上方
  • 通过alpha参数控制填充区域的透明度,平衡密度区域和散点的可见性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 07:52:46