r语言 - 在 ggplot 创建绘图时运行钩子



我想在每次ggplot创建绘图时运行一个函数。

使用传统的 R 图形,可以通过添加如下所示的"钩子"来实现:

setHook('plot.new', my_function)

从他们开始,每次创建my_function执行情节时。

有没有办法用 ggplot 实现相同的目标?

如果你真的想使用钩子,你可以使用setHook('grid.newpage', my_function)

例如

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

请注意,这也将为使用网格图形的其他函数/包建立钩子,因此请谨慎使用/注意。

可能更好的是为 ggplot 对象制作一种新的打印方法:

print.ggplot = function(x, ...) {
  my_function()
  ggplot2:::print.ggplot(x, ...)
}

相关内容

最新更新