2

我最近了解到,我需要使论文的字体与嵌入图形的字体保持一致。由于我决定使用 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 的相对新手,所以我希望任何建议都清楚并且通常在上述代码的上下文中。提前致谢!

4

0 回答 0