R:绘制 textGrob 失败并出现神秘错误

R: Drawing a textGrob fails with mysterious error

我有四种不同的图形,每一种都成功地转换成了 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"))

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

我什至不知道错误来自哪个函数。 grid.Call.graphics 未导出,但 grid:::grid.Call.graphics 的代码中没有这样的错误消息,as.graphicsAnnot, resolveHJustresolveVJust.

也没有

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

全部完成 Windows 7.

来自 ?Hershey

You cannot use mathematical expressions (plotmath) with Hershey fonts.

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