knitr удаляет крючки «before.plot.new»

#r #plot #r-markdown #hook #knitr

#r #график #r-markdown #крючок #knitr

Вопрос:

Попытался установить постоянную опцию, используя before.plot.new крючки в plot.new функции. Это работает для построения графиков на экране и в различных типах файлов. Однако настройки игнорируются в r-markdown.

Вот небольшой пример изменения направления меток осей с помощью las :

 hook <- getHook("before.plot.new")
hook$par <- function() par(las=1)
setHook("before.plot.new", hook, "replace")

plot(1)
  

img1

Однако из r-markdown и после knit("markdown.md") :

 ```{r}
hook <- getHook("before.plot.new")
hook$par <- function() par(las=1)
setHook("before.plot.new", hook, "replace")

plot(1)
```
  

img2

Однако, если мы сделаем то же самое, используя другой крючок plot.new — кажется, все работает так, как ожидалось.

knitr Стирает ли содержимое before.plot.new ?

Ответ №1:

Это было связано с дизайнерским решением в r-lib evaluate пакете. Уже изменено в новейшей версии.

Вот соответствующая проблема в репозитории GitHub для получения более подробной информации: https://github.com/yihui/knitr/issues/1684