我在Macbook上使用R。

这段代码:

postscript("plot.eps")
ggplot(SomeData, aes (x=Cue, y=var1, group=var2, color=var2, shape=var2)) +
  geom_line(size=0.5) +
  geom_point(size = 3) +
  geom_errorbar(aes(ymin=Var1-ci, ymax=Var1+ci), width=0.15, size=0.5) +
  xlab("Var1") + ylab("Var2")+
  coord_cartesian(ylim=c(600, 675)) +
  theme(axis.text = element_text(colour = "black")) +
  scale_colour_manual(values=darkcols) +
  theme(text = element_text(size=16, family="Times New Roman")) +
  theme(legend.position="bottom")
dev.off()

返回此错误:
Error in grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y,  :
family 'Times New Roman' not included in postscript() device

字体系列在图上定义。尝试使用postscript(family="Times")postscript(family="Times New Roman")定义它,但未成功

尝试过font_import()/loadfonts(),但是这样做会产生更多错误(执行此操作后,该图甚至不会显示在QUARTZ上)

检查字体文件夹中禁用的字体,启用Times New Roman。

使用names(postscriptFonts())检查R中可用的字体,并且该字体在那里。

就像我说的,plot在Quartz中看起来很完美,但是用postscript将其另存为.eps会产生上述错误和空白文件。

关于如何解决的任何想法?

最佳答案

您还可以尝试使用Cairo包,以我的经验,该包可以更好地与其他字体一起使用。

library(Cairo)
cairo_ps("test.eps", family = "Times")
plot(rnorm(100))
dev.off()

10-08 17:06