R грешка на Mac: семейство „Times New Roman“ не е включено в postscript() устройството

Използвам R на macbook.

Този код:

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 е активиран.

Проверих наличните шрифтове в R с names(postscriptFonts()) и е там.

Както казах, сюжетът изглежда перфектно в Quartz, но запазването му като .eps с postscript генерира споменатата грешка и празен файл.

Някакви идеи как да се реши?


person Community    schedule 22.12.2015    source източник


Отговори (2)


Можете също да опитате да използвате пакета Cairo, който според моя опит работи по-добре с различни шрифтове.

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

това изглежда работи (за Times). Така че мисля, че просто трябва да добавите family="Times" към вашата функция postscript().

p <- ggplot(mtcars, aes (x=cyl, y=disp)) + 
  geom_point(size = 3) +
  theme(text = element_text(size=16, family="Times")) + 
  theme(legend.position="bottom")

postscript("plot.eps", family="Times")
p
dev.off()
person MLavoie    schedule 22.12.2015