ggplot 中的字体更改不适用于双标图标签名称

Font change in ggplot not working on biplot label names

我偶然发现了一个问题,我可以将双标图像中的所有文本更改为另一种字体,但标签除外。

下面是一个简单的问题示例,标签文本明显不同:

附上我使用的代码。我找不到解决这个问题的方法,希望有人能提供帮助。

p <- fviz_pca(fit, geom = c("point"), 
              repel = TRUE, label = "var", 
              habillage = IOSDV1$Fertilisation, 
              addEllipses = TRUE, ellipse.type="confidence", 
              palette = "npg", labelsize = 5, pointsize = 3, 
              col.ind = "black", col.var = "black", arrowsize = 0.6) + 
  theme_bw(base_family = "Palatino Linotype") + 
  theme(text = element_text(family = "Palatino Linotype", size = 14)) + 
  labs(title = "")

ggsave(filename = "ggplot_garamond.png", dpi = 600, type = "cairo")

回答

您必须将 font.family 参数添加到 fviz_pca:

fviz_pca(fit, geom = c("point"), 
         repel = TRUE, label = "var", 
         habillage = IOSDV1$Fertilisation, 
         addEllipses = TRUE, ellipse.type="confidence", 
         palette = "npg", labelsize = 5, pointsize = 3, 
         col.ind = "black", col.var = "black", arrowsize = 0.6,
         font.family = "Palatino Linotype")

理由

在内部,fviz_pca 调用 fviz,后者又调用 ggpubr::ggscatter。在此函数中,您可以使用 font.family 参数指定字体系列。