19

根据文档,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)

微基准图

我在文档中看不到任何关于...柔软的波动,但我从函数创建者的这个答案中最好的猜测是,这就像一系列平滑的运行时间的箱线图,上图和下图四分位数连接在形状的主体上。也许?这些情节看起来太有趣了,以至于不知道这里发生了什么。

这是什么阴谋?

4

1 回答 1

9

简短的回答是小提琴情节

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


更长更有趣(?)的答案。当你调用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你来到小提琴图的帮助页面。

于 2016-09-18T10:13:02.653 回答