构建自己的打印类方法 - ggplot2

时间:2015-08-03 09:34:23

标签: r

我只是想根据我的课程“facet”构建我自己的打印方法。现在我想在调用ggplot时创建一个特定的print,但它会向我抛出错误消息

  

错误:ggplot2不知道如何处理类facetindicator的数据

代码

print.facet   <- function(x) {

  print("hello") # The print statement gets outputted fine
  ggplot(data = x, aes( x = published, y = SMA90)) + geom_line()

}

使用相同的对象手动运行ggplot但没有class属性可以正常运行。我一定是错过了一些微不足道的东西,它会是什么?

1 个答案:

答案 0 :(得分:2)

将对象传递给ggplot时可以删除facet类,或者更优雅地通过fortify方法删除facet类

fortify.facet <- function(x) {class(x) <- class(x)[-1]; x}

print.facet   <- function(x) {
  ggplot(data = x, aes( x = published, y = SMA90)) + geom_line()
}

d <- data.frame(published=1:10, SMA90=1:10)
class(d) <- c("facet", class(d))

print(d)

您还可以考虑定义as.data.frame.facet和/或autoplot方法,这些方法可能会更自然。