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

使用ggsave导出含extrafont字体的ggplot图时遇字体丢失问题

ggplot字体导出丢失及画质问题的解决办法

修复ggsave字体丢失问题

  • 去掉loadfonts()里的device="win"参数,改用通用加载方式:
    library(extrafont)
    font_import()
    loadfonts() # 不指定设备,适配所有导出场景
    
  • 导出时给ggsave指定device="win.metafile"(Windows环境),同时确认主题字体设置正确:
    # 示例:将主题字体设为"微软雅黑"
    p <- ggplot(data) + geom_point() + theme(text = element_text(family = "微软雅黑"))
    ggsave("output_plot.png", p, device = "win.metafile", dpi = 300)
    

提升PNG/JPEG导出画质

  • 用ggsave直接导出时,把dpi调到300以上,同时明确设置宽高(单位用英寸或厘米):
    ggsave("high_res_plot.png", p, width = 10, height = 7, dpi = 300)
    
  • 试试ragg包的导出设备,对字体渲染和画质支持更优:
    1. 先安装包:install.packages("ragg")
    2. 导出代码:
      ggsave("ragg_plot.png", p, device = ragg::agg_png, dpi = 300)
      

替代方案:换用showtext包管理字体

如果extrafont问题始终无法解决,换showtext试试,兼容性更好:

  1. 安装并加载包:
    install.packages("showtext")
    library(showtext)
    
  2. 添加系统字体(以Windows微软雅黑为例,其他系统自行调整字体路径):
    font_add("微软雅黑", "msyh.ttc")
    showtext_auto() # 让ggplot自动调用该字体
    
  3. 直接用ggsave导出即可,无需额外设置:
    ggsave("showtext_plot.png", p, dpi = 300)
    

内容的提问来源于stack exchange,提问作者Nick Glättli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:50:22