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
相关产品推荐
相关产品推荐

