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

如何减小ggplot2使用theme_ipsum_rc时水平图例的元素间距

问题根源

你遇到的图例间距异常问题核心来自 hrbrthemes::theme_ipsum_rc() 的默认配置:该主题默认设置了较大的 legend.key.width(图例色块宽度),这才是导致间距随文本长度成正比变化的原因,你之前尝试调整的legend.spacing.x、legend.text边距等参数都没有命中核心配置项。

解决方案

只需要在theme()配置中新增legend.key.width参数,自定义缩小图例色块宽度即可,你可以根据自己的需求调整单位数值:

# 修正后的绘图代码
data %>% 
    ggplot(aes(item, count, fill = resp, order = resp)) +
    geom_col(data = filter(data, !(resp %in% c("Strongly disagree", "Disagree"))),
                     position = position_stack(reverse = T)) +
    geom_col(aes(y = -count),
                     filter(data, !(resp %in% c("Agree", "Strongly agree")))) +
    scale_fill_brewer(palette = "RdBu", drop = F) +
    labs(y = NULL) +
    coord_flip() +
    theme_ipsum_rc() +
    theme(legend.position="bottom",
          legend.key.width = unit(0.2, "cm"), # 新增这行调整图例色块宽度
          legend.spacing.x = unit(0.1, "cm"),
          legend.text = element_text(margin = margin(0,0,0,0)),
          legend.margin=margin(c(0,0,0,0)))

如果还需要进一步缩小图例条目之间的空隙,可以配合调小legend.spacing.x的数值即可,完全可以在保留theme_ipsum_rc所有其他样式的前提下解决间距问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 02:12:02