Запуск хука, когда ggplot создает сюжет - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу запускать функцию каждый раз, когда ggplot создает график.

Используя традиционную графику R, это можно было сделать, добавив «крючок», подобный следующему:

setHook('plot.new', my_function)

Откаждый раз, когда был создан сюжет my_function.

Есть ли способ добиться того же с помощью ggplot?

1 Ответ

1 голос
/ 24 апреля 2019

Если вы действительно хотите использовать ловушку, вы можете использовать setHook('grid.newpage', my_function)

Например,

my_function = function() cat('function ran\n')
setHook('grid.newpage', my_function)
ggplot(mtcars, aes(mpg,cyl)) + geom_point()

Обратите внимание, это также установит ловушку для других функций / пакетов, которыеиспользуйте сеточную графику, поэтому используйте с осторожностью / осознанностью.

Вероятно, лучше создать новый метод печати для объектов ggplot:

print.ggplot = function(x, ...) {
  my_function()
  ggplot2:::print.ggplot(x, ...)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...