如何无需本地安装即可在ggplot2图表中使用Google Fonts字体?
R语言无需本地安装字体调用Google Fonts生成ggplot2图表的方案
完全可以实现,仅需通过showtext和sysfonts两个R包即可完成,全程不需要将字体安装到Windows或Mac的系统字体库中,操作步骤如下:
- 第一步:安装并加载依赖包
# 首次使用先安装包 install.packages(c("showtext", "sysfonts")) # 加载包 library(showtext) library(sysfonts)
- 第二步:加载需要的Google Fonts
调用font_add_google()函数直接拉取Google Fonts的字体资源,参数name为Google Fonts官网标注的标准字体名称,family为你自定义的别名,后续绘图时直接调用该别名即可:
# 示例:拉取Roboto字体,自定义别名为roboto font_add_google(name = "Roboto", family = "roboto")
- 第三步:开启showtext自动渲染适配
要让ggplot2的图形设备识别加载的在线字体,需要开启showtext的自动适配功能:
showtext_auto(enable = TRUE)
- 第四步:在ggplot2中调用加载的字体
直接在theme的字体参数中传入之前自定义的字体别名即可:
library(ggplot2) ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(color = "#2c3e50") + labs(title = "使用Google Fonts生成的ggplot2示例图", x = "车辆重量", y = "每加仑燃油行驶英里数") + theme_minimal() + theme( # 全局文本使用加载的roboto字体 text = element_text(family = "roboto"), # 标题单独设置加粗样式 plot.title = element_text(family = "roboto", size = 18, face = "bold") )
注意事项:如果需要导出高清图片,建议显式打开图形设备后再运行绘图代码,避免渲染失效,示例导出代码如下:
png("ggplot_font_test.png", width = 900, height = 600, res = 120) showtext_auto(TRUE) # 此处写入你的ggplot绘图代码 dev.off()
除了Google Fonts之外,你也可以通过font_add()函数传入公开的字体文件直链,实现其他开源字体的在线调用,同样不需要本地存储或安装字体文件。
内容的提问来源于stack exchange,提问作者Enrico Di Maio
相关产品推荐
相关产品推荐

