autoplot.microbenchmark实际绘制了什么?

时间:2014-06-27 12:12:54

标签: r plot ggplot2 microbenchmark

根据文档,microbenchmark:::autoplot"使用ggplot2生成更清晰的微基准时序图。"

酷!让我们试试示例代码:

library("ggplot2")
tm <- microbenchmark(rchisq(100, 0),
                     rchisq(100, 1),
                     rchisq(100, 2),
                     rchisq(100, 3),
                     rchisq(100, 5), times=1000L)
autoplot(tm)

microbenchmark plots

我在文档中没有看到关于......软弱起伏的任何内容,但我对this answer by the function creator的最佳猜测是,这就像是一系列平滑的时间框图,上部和下部四分位数连接在形状的主体上。也许?这些情节看起来太有趣了,不知道这里发生了什么。

这是什么情节?

1 个答案:

答案 0 :(得分:7)

简短回答是violin plot

  

这是一个箱形图,每侧都有旋转的核密度图。

更有趣的(​​?)答案越长。当您调用autoplot函数时,实际上是在调用

## class(ts) is microbenchmark
autoplot.microbenchmark

然后我们可以通过

检查实际的函数调用
R> getS3method("autoplot", "microbenchmark")
function (object, ..., log = TRUE, y_max = 1.05 * max(object$time)) 
{
    y_min <- 0
    object$ntime <- convert_to_unit(object$time, "t")
    plt <- ggplot(object, ggplot2::aes_string(x = "expr", y = "ntime"))
 ## Another ~6 lines or so after this

关键是+ stat_ydensity()。看着?stat_ydensity你 来到小提琴地块的帮助页面。