2016-11-05 5 views
1

J'ai quatre types de graphiques différents, chacun étant converti en un groupe avec un succès apparent. J'essaie de les combiner en une seule image avec grid.arrange(). L'un des quatre - je dirais le plus simple des quatre - produit une erreur, même sans les trois autres.R: Dessiner un texteGrob échoue avec une erreur mystérieuse

grid.text(expression(atop("first line", 
          scriptstyle("second line"))), 
      vjust = 0, gp=gpar(fontfamily = "HersheySans")) 

Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, : 
    Metric information not available for this family/device 

C'est le traceback()

8: grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, 
     resolveHJust(x$just, x$hjust), resolveVJust(x$just, x$vjust), 
     x$rot, x$check.overlap) 
7: drawDetails.text(x, recording = FALSE) 
6: drawDetails(x, recording = FALSE) 
5: drawGrob(x) 
4: recordGraphics(drawGrob(x), list(x = x), getNamespace("grid")) 
3: grid.draw.grob(tg) 
2: grid.draw(tg) 
1: grid.text(expression(atop("first line", scriptstyle("second line"))), 
     vjust = 0, gp = gpar(fontfamily = "HersheySans")) 

Je reçois la même erreur si je retire scriptstyle et vjust de la fonction, ils ne sont pas les coupables.

Je n'arrive même pas à comprendre de quelle fonction provient l'erreur. grid.Call.graphics n'est pas exporté, mais grid:::grid.Call.graphics n'a pas de message d'erreur comme celui-ci dans son code, ni as.graphicsAnnot, resolveHJust, ni resolveVJust.

J'ai touché le mur sur celui-ci. Des idées ou des suggestions pour résoudre ce problème ou pour le contourner sont très appréciées.

fait sous Windows 7.

Répondre

2

De ?Hershey,

Vous ne pouvez pas utiliser des expressions mathématiques (plotmath) avec les polices Hershey.

ce qui signifie que les polices Hershey sont incompatibles avec quoi que ce soit dans la liste ?plotmath, comme scriptstyle, atop, et bien sûr expression.

+0

Faites-vous référence à mon utilisation de la fonction scriptstyle? Cela ne peut pas causer ce problème parce que j'ai eu la même erreur exacte quand j'ai enlevé des scriptstyle. Mais je suppose que cela pourrait causer un problème différent quand je répare celui-ci. Je n'ai pas trouvé de documentation pour les polices non-Hershey dans les spécifications de fontfamily gpar. Est-ce qu'il y en a? – andrewH

+0

Ah! Je vous remercie. Je n'ai pas réalisé que ce n'était pas la base "expression". – andrewH