1

我有四种不同类型的图形,每一种都转换成一个明显成功的 grob。我正在尝试使用 grid.arrange() 将它们组合成一个图像。四个之一——我会说四个中最简单的一个——会产生错误,即使没有其他三个。

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

这是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"))

如果我从函数中删除scriptstyle和,我会得到同样的错误vjust,所以他们不是罪魁祸首。

我什至无法弄清楚错误来自什么函数。grid.Call.graphics 没有被导出,但grid:::grid.Call.graphics它的代码中没有类似的错误消息,也没有 doas.graphicsAnnot, resolveHJustresolveVJust.

我在这个问题上碰壁了。任何想法或建议如何解决这个问题或解决它都非常感谢。

全部在 Windows 7 下完成。

4

1 回答 1

2

?Hershey,

您不能将数学表达式 (plotmath) 与 Hershey 字体一起使用。

这意味着 Hershey 字体与中列出的任何内容都不兼容?plotmath,例如scriptstyle, atop,当然还有expression

于 2016-11-05T09:08:10.273 回答