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

如何消除ggarrange排列透明ggplot2图时图表与左侧标注间的浅灰线

解决方案

方案1:无需保留整体透明背景(最简便)

浅灰线的本质是排列图表时grob间隙的透明区域在渲染时产生的显示异常,直接在导出时给整张图片设置白色背景即可消除,修改ggsave参数即可:

ggsave(plot = figure, 
       filename = "question.png",
       height = 180, width =180, units = "mm", 
       dpi = 300, device = "png",
       limitsize = FALSE,
       bg = "white") # 新增背景参数

该方案不影响单张图表的样式,导出后插入LaTeX不会再显示灰线。

方案2:保留图表透明,仅修改左侧标注背景为白色

如果需要保留图表区域的透明属性,仅给左侧标注添加白色背景,可以用grid包构造带背景的文本grob替换原有标注:

library(grid)
# 先排列4张原图
four_plots <- ggarrange(bxp,bxp1,dp,dp1, ncol = 2, nrow = 2, align = "hv")
# 构造带白底的左侧标注
left_grob <- gTree(
  children = gList(
    rectGrob(gp = gpar(fill = "white", col = NA)), # 白色无边框背景
    textGrob("left side ", gp = gpar(col = "black", fontsize = 10), rot = 90)
  )
)
# 合并标注和图表,可自行调整widths参数修改标注占比
figure <- ggarrange(left_grob, four_plots, ncol = 2, widths = c(0.05, 0.95))

方案3:全局设置组合图背景

也可以直接给最终的组合图添加白色背景,同时保留单张图表的透明设置:

figure <- figure + theme(plot.background = element_rect(fill = "white", color = NA))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:36:02