R: рисование textGrob не удается с загадочной ошибкой

У меня есть четыре вида графики, каждый из которых превращается в гроб с очевидным успехом. Я пытаюсь объединить их в одно изображение с помощью 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 не имеет такого сообщения об ошибке в своем коде, и при этом as.graphicsAnnot, resolveHJust, или же resolveVJust,

Я врезался в стену на этом. Любые идеи или предложения, как решить эту проблему или обойти это высоко ценится.

Все сделано под Windows 7.

1 ответ

Решение

От ?Hershey,

Вы не можете использовать математические выражения (plotmath) со шрифтами Hershey.

Это означает, что шрифты Hershey несовместимы с чем-либо перечисленным в ?plotmath, такие как scriptstyle, atopи конечно expression,

Другие вопросы по тегам