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

Win11下RStudio中ggplot自定义字体无法识别的解决求助

Win11下RStudio中ggplot调用自定义字体的解决方法
  • 刷新R的字体数据库
    Windows下R不会自动同步系统新安装的字体,得用extrafont包手动导入:

    install.packages("extrafont")
    library(extrafont)
    # 导入所有系统字体到R的数据库,耗时较长,别中断
    font_import()
    # 加载Windows设备可用的字体
    loadfonts(device = "win")
    
  • 确认字体的正确名称
    报错很大概率是字体名称输错了——要填的是字体在系统里的正式名称,不是文件名。
    可以用代码查看所有R能识别的字体:

    fonts()
    

    或者去Windows字体设置里,找到目标字体右键“属性”,查看“字体名称”字段。比如Vazirmatn的正式名称一般就是Vazirmatn,核对后再填入element_text(family = "...")。

  • 波斯语文本的RTL布局支持
    波斯语是右到左排版,光设置字体不够,得用bidi包处理文本方向:

    install.packages("bidi")
    library(bidi)
    # 给数据添加波斯语标签并设置RTL方向
    mtcars$car_name <- bidi(rownames(mtcars), direction = "RTL")
    ggplot(mtcars, aes(hp, mpg)) +
      geom_point() +
      labs(x = bidi("مقدار اتصال", direction = "RTL"),
           y = bidi("مایل بر گالن", direction = "RTL")) +
      theme(text = element_text(family = "Vazirmatn"))
    
  • 重启RStudio验证
    做完以上操作后,关闭并重新打开RStudio,再运行你的绘图代码,检查警告是否消失、字体是否正常显示。

  • 备选方案:用showtext包
    如果extrafont不好使,试试更轻量的showtext:

    install.packages("showtext")
    library(showtext)
    # 加载已安装的字体,直接填正式名称即可
    font_add("Vazirmatn", family = "Vazirmatn")
    # 启用showtext自动渲染
    showtext_auto()
    # 运行绘图代码
    ggplot(mtcars, aes(hp, mpg)) +
      geom_point() +
      theme(text = element_text(family = "Vazirmatn"))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:52:47