2015-12-22 5 views
4

J'utilise R sur un macbook.Erreur R sur un Mac: "famille 'Times New Roman' non inclus dans le périphérique postscript()"

Ce code:

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() 

renvoie cette erreur:

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

famille de polices est défini sur la parcelle. Essayé définir avec postscript(family="Times") et postscript(family="Times New Roman") sans succès

Essayé font_import()/loadfonts(), mais cela qui génère plus d'erreurs (Plot wont même apparaître sur QUARTZ après avoir fait cela)

vérifié les polices désactivées dans le dossier de la police, Times New Roman est activé.

Vérifié les polices disponibles dans R avec names(postscriptFonts()) et il est là.

Comme je l'ai dit, l'intrigue semble parfaitement dans Quartz, mais l'enregistrer en .eps avec postscript génère l'erreur mentionnée et un fichier vide.

Des idées sur la façon de résoudre?

Répondre

2

Vous pouvez également essayer d'utiliser le paquet Cairo, qui dans mon expérience fonctionne mieux avec des polices différentes.

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

cela semble fonctionner (pour Times). Donc je pense que vous avez juste besoin d'ajouter family = "Times" à votre fonction 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()