如何在ggconsort中用ggtext实现Consort图项目符号左对齐?
解决方案
1. 直接设置geom_consort()的文本对齐参数
这是最简洁的方案:ggconsort的geom_consort()支持hjust参数,设置hjust=0即可让所有框内文本左对齐,项目符号会自然靠左,同时避免ggtext的标签兼容性问题。
修改绘图代码:
study_consort %>% ggplot() + geom_consort(hjust = 0) + # 关键参数:左对齐 theme_consort(margin_h = 8, margin_v = 1)
2. 清理glue字符串中的多余空格
你当前glue代码里的前置缩进空格会被ggtext解析为额外空白,导致项目符号偏移。删除每一行项目符号前的多余空格,让文本开头没有冗余缩进:
consort_box_add("excluded", 30, 45, glue::glue('<b>{cohort_count_adorn(study_cohorts, excluded)}</b><br> • {cohort_count_adorn(study_cohorts, ineligible1)}<br> • {cohort_count_adorn(study_cohorts, ineligible2)}<br> • {cohort_count_adorn(study_cohorts, ineligible3)}<br> • {cohort_count_adorn(study_cohorts, ineligible5)}<br> • {cohort_count_adorn(study_cohorts, eligibleNA)}'))
结合hjust=0使用,就能实现完美的左对齐效果。
3. 用ggtext支持的<span>标签微调缩进
如果需要更精细的对齐控制,可以用ggtext支持的<span>标签设置负边距,调整项目符号的位置:
consort_box_add("excluded", 30, 45, glue::glue('<b>{cohort_count_adorn(study_cohorts, excluded)}</b><br> <span style="margin-left:-1em;">• {cohort_count_adorn(study_cohorts, ineligible1)}</span><br> <span style="margin-left:-1em;">• {cohort_count_adorn(study_cohorts, ineligible2)}</span><br> <span style="margin-left:-1em;">• {cohort_count_adorn(study_cohorts, ineligible3)}</span>'))
调整margin-left的数值(如-0.8em)来适配你的布局需求。
内容的提问来源于stack exchange,提问作者Shivvy
相关产品推荐
相关产品推荐

