在ggplot2中创建自定义Stat对象

时间:2013-08-07 16:13:07

标签: r ggplot2

我想为ggplot2创建一个自定义Stat对象。 (具体来说,我希望创建一个更平滑的工作方式,而不是stat_smooth允许的工作方式 - 例如,没有y~x建模功能 - 但还有其他自定义统计信息我喜欢即使我的具体案例有解决方法,也要创建。)

我找到this suggested solution from Hadley Wickham

StatExpo <- proto(Stat, {
  objname <- "expo"
  desc <- "Exponential smoothing"
  default_geom <- function(.) GeomLine

  calculate_groups <- function(., data, scales, variable="x", ...) {
    data$y <- HoltWinters(data$x, ...)
  }
})
stat_expo <- StatExpo$new

然而,当我尝试它时,我得到:

Error in proto(Stat, { : object 'Stat' not found

环顾ggplot code后,我找到了where Stat is defined。但是,就我所知,Stat对象是never exported from ggplot2

我可以在ggplot2/R文件夹中编写我的新stat对象,然后重新安装软件包,但显然这会很麻烦,并且很难与其他人共享解决方案。如何在ggplot命名空间之外创建自定义Stat对象?

2 个答案:

答案 0 :(得分:4)

ggplot2:::Stat可用于访问未导出的对象。

答案 1 :(得分:1)

getFromNamespace('Stat','ggplot2')