我最近了解到,我需要使论文的字体与嵌入图形的字体保持一致。由于我决定使用 Times New Roman 作为正文,我需要重新审视我的数字并使用相同的字体对其进行编码。不幸的是,我原本想的一个简单的功能已经变成了一个巨大的头痛。按照其他人的建议,我继续安装了“extrafont”包并加载了我设备上所有可用的字体(我在 Macbook 上运行,仅供参考)。在使用了我可以从其他堆栈溢出查询中搜索到的所有必要代码后,我看到了我的图形预览,显示了正确的字体(再次,Times New Roman)。但是,在尝试使用 ggsave 函数导出它时,头痛就开始了。不幸的是,我收到以下错误:
有 50 个或更多警告(使用 warnings() 查看前 50 个)
在运行建议的函数以了解有关这些警告的更多信息时,我看到了一长串相同的重复错误:
> warnings()
Warning messages:
1: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Times New Roman' not found in PostScript font database
2: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Times New Roman' not found in PostScript font database
3: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Times New Roman' not found in PostScript font database
4: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Times New Roman' not found in PostScript font database
5: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
font family 'Times New Roman' not found in PostScript font database
6: In grid.Call(C_textBounds, as.graphicsAnnot(x$label), ... :
等等。这里发生了什么以及如何在我的代码中修复它?下面提供了我使用的代码。是的,在运行 loadfonts(device) 函数时,我被适当地提示接受该函数 (y/n),我一直等到它完全加载,然后再继续我的代码。是的,我在之后立即运行 fonts() 命令仔细检查 Times New Roman 是否在列表中。这是我的代码:
install.packages("extrafont")
library(extrafont)
font_import()
loadfonts(device)
fonts()
ggplot(plot1, aes(x=ecotype, y=mean, fill=treatment))+
geom_bar(stat="identity", position="dodge")+
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), position=position_dodge(.9),
width=.3)+
scale_fill_manual(values=c("#CA3542","#37AFA9"),
labels=c("Control","Exclusion"), name="Treatment")+
labs(x="Ecotype", y="Expected Mean Dry Aboveground Biomass (g)")+
geom_hline(aes(yintercept=0), size=.3)+
facet_grid(site~., scales="free")+
theme_bw()+
theme(axis.title.x=element_text(size=16))+
theme(axis.title.y=element_text(size=16))+
theme(axis.text.x=element_text(size=16))+
theme(axis.text.y=element_text(size=16))+
theme(strip.text.y=element_text(size=16))+
theme(legend.title=element_text(size=12))+
theme(legend.text=element_text(size=12))+
theme(text=element_text(family="Times New Roman"))+
theme(legend.justification = c(0.9,1.1), legend.position=c(0.95,1),
panel.grid.major = element_blank(), panel.grid.minor = element_blank())
ggsave("plot1.eps", height = 8, width = 5)
免责声明:我仍然是 R 的相对新手,所以我希望任何建议都清楚并且通常在上述代码的上下文中。提前致谢!