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

使用ggtext::element_textbox_simple设置竖排衬线文本被压缩的解决方法

修复ggtext竖排Y轴标签字符压缩问题

用ggtext::element_textbox_simple实现竖排Y轴长标签(衬线字体)时,常会出现字符间距过窄的压缩问题。以下是可复现问题的代码:

library(tidyverse)
library(ggtext)
ggplot(mtcars, aes(disp, mpg)) + 
  geom_point() +
  ylab('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt') +
  theme_minimal(base_family = 'serif') +
  theme(
    axis.y.title = element_textbox_simple(orientation = 'left-rotated', 
                                          halign = .5,
                                          margin = margin(5, 0, 15, 0))
  )

解决办法

给文本框指定宽度,让长文本自动换行,再调整行高优化间距即可:

library(tidyverse)
library(ggtext)
ggplot(mtcars, aes(disp, mpg)) + 
  geom_point() +
  ylab('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt') +
  theme_minimal(base_family = 'serif') +
  theme(
    axis.y.title = element_textbox_simple(orientation = 'left-rotated', 
                                          halign = .5,
                                          margin = margin(5, 0, 15, 0),
                                          # 设置文本框宽度,强制文本换行避免挤压
                                          width = unit(2.5, "cm"),
                                          # 调整行高,让竖排字符间距更舒展
                                          lineheight = 1.2)
  )

原理说明

element_textbox_simple默认会自适应容器宽度压缩文本,指定width参数后,文本会在设定宽度内自动换行,不会挤在一起;竖排场景下,lineheight参数控制字符间的垂直间距,调大后能让排版更舒适。

内容的提问来源于stack exchange,提问作者Łukasz Deryło

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 03:07:18