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

调整ggplot2边际密度图与Y轴Rug位置,避免重叠及优化布局

解决Y轴外侧Rug图与边际密度图重叠问题

问题说明

基于给定的test数据集,需要绘制满足以下要求的可视化图:

  • 散点图展示length与position的关系
  • Y轴外侧添加Rug图
  • X、Y轴添加填充式边际密度分布图
  • 使用theme_bw主题,图例置于底部
    当前代码生成的图存在Y轴外侧Rug图与右侧边际密度图重叠的问题,需调整布局让各元素保持间距、避免拥挤。

调整后代码

library(ggplot2)
library(ggExtra)

# 构建主图,调整边距和Rug图位置
plottest <- ggplot(test, aes(x=length, y=position, colour = category, fill = category)) + 
  geom_point(size = 2, alpha = 0.7) + 
  # 设置Rug图位置和样式,明确外侧位置
  geom_rug(sides = "r",
           col="#174e73",
           alpha=0.4, 
           size=1.2,
           outside = TRUE,
           outside.position = "plot") + 
  theme_bw() + 
  # 调整主图右侧边距,给Rug图留出空间
  theme(legend.position="bottom",
        plot.margin = margin(5, 20, 5, 5, "pt")) + 
  coord_cartesian(clip = "off") + 
  # 统一颜色映射,确保点、Rug、密度图颜色一致
  scale_color_manual(values=c("#174e73")) +
  scale_fill_manual(values=c("#174e73"))

# 添加边际密度图,调整尺寸避免重叠
ggMarginal(plottest, 
           type = "density",
           groupColour = TRUE,
           groupFill = TRUE,
           # 减小边际图相对主图的尺寸,留出间距
           size = 3)

关键调整点

  • 主图边距:通过plot.margin给主图右侧增加额外空间,确保Rug图有足够的展示区域
  • Rug图位置:设置outside.position = "plot"明确Rug图置于绘图区外侧,配合边距避免和边际图冲突
  • 边际图尺寸:调整ggMarginal的size参数(默认是5),减小边际图的相对占比,让其和主图、Rug图保持合理间距
  • 颜色统一:添加fill美学映射并设置scale_fill_manual,确保密度图的填充色和散点、Rug图颜色一致,满足视觉统一要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 05:50:27