当我使用自定义字体渲染 ggplot 时,它可以在 IDE 中工作,但是在 Quarto 和 RMarkdown 中我不断收到此错误:
Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
invalid font type
Calls: .main ... drawDetails -> drawDetails.text -> grid.Call.graphics
我的系统上已经安装了这些字体,但 Quarto 或 RMakrdown 无法识别。
例如,这是我的脚本:
---
title: "TEST"
format: pdf
editor: visual
---
This plot works:
```{r echo=FALSE, message=FALSE, warning=FALSE}
library(tidyverse)
mtcars |>
count (cyl) |>
ggplot (aes (x = cyl, y = n)) +
geom_col() +
labs (title = "Plot 1") +
geom_text (aes (label = n),
vjust = -1)
```
This plot does not:
```{r echo=FALSE, message=FALSE, warning=FALSE}
mtcars |>
count (cyl) |>
ggplot (aes (x = cyl, y = n)) +
geom_col() +
labs (title = "Plot 2") +
geom_text (aes (label = n),
vjust = -1,
family = "Montserrat") +
theme (text = element_text(size = 12, family = "Montserrat"))
```
错过了一个步骤。我添加了
extrafont::loadfonts(quiet = TRUE)
在脚本的开头,现在可以运行了。
只需使用系统字体方法更新此答案。我写了一篇关于它的文章来澄清一些事情,但总结是:
安装{systemfonts}(它应该安装其依赖项)
将图形设备更改为 AGG(在全局选项中)
在 RMarkdown/Quarto 文档的开头,包含以下内容:
knitr::opts_chunk$set(dev = "ragg_png")
如果这不起作用,完整的帖子还有额外的探索途径! https://www.cararthompson.com/posts/2024-01-12-using-fonts-in-r-for-dataviz/2024-01-12_getting-fonts-to-work