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.


person andrewH    schedule 05.11.2016    source источник


Ответы (1)


С 1_,

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

это означает, что шрифты Hershey несовместимы со всем, что указано в ?plotmath, например scriptstyle, atop и, конечно же, expression.

person baptiste    schedule 05.11.2016
comment
Вы имеете в виду использование мной функции scriptstyle? Это не может быть причиной этой проблемы, потому что я получил точно такую ​​​​же ошибку, когда удалил scriptstyle. Но я полагаю, что это может вызвать другую проблему, когда я исправлю эту. Я не смог найти никакой документации для шрифтов, отличных от Hershey, в спецификациях семейства шрифтов gpar. Есть такие? - person andrewH; 05.11.2016
comment
Ах! Спасибо. Я не понимал, что это не было базовым выражением R. - person andrewH; 08.11.2016