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

使用ggsave搭配device=cairo_pdf导出PDF时文字间距不一致问题求助

解决ggplot2导出PDF文字间距异常问题

以下是几种可行的解决方案:

  • 指定嵌入字体
    macOS系统中,Cairo导出PDF时对默认字体的渲染容易出现字距异常。明确指定系统兼容的字体(如Helvetica)并开启字体嵌入,可解决该问题:

    library(ggplot2)
    
    gg <- ggplot(iris, aes(x=Petal.Width, y=Species)) +
      geom_point() +
      theme(
        axis.text.y=element_text(size=5, family="Helvetica")
      )
    gg
    
    ggsave('~/Dropbox/issueGgsave.pdf', width=60, height=105, units='mm', 
           device=cairo_pdf, embed_fonts=TRUE)
    
  • 更换导出设备
    改用ragg包的PDF导出设备,它对字体渲染的兼容性更好,能避免Cairo的字距问题:
    先安装ragg包:

    install.packages("ragg")
    

    执行导出:

    ggsave('~/Dropbox/issueGgsave.pdf', width=60, height=105, units='mm', 
           device=ragg::agg_pdf)
    
  • 调整字体渲染参数
    在element_text中设置lineheight和kerning参数,强制规范字距与行高:

    theme(
      axis.text.y=element_text(size=5, family="Helvetica", lineheight=1, kerning=TRUE)
    )
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:12:08