autoplot.microbenchmark实际上绘制了什么?

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

微基准测试图

我在文档中没有看到任何关于…柔软的波动的内容,但是从这个函数创建者的回答推断出来,这就像一个平滑的时间序列盒须图,将上下四分位数连接在形状的主体上方和下方。也许?这些图看起来太有趣了,不能不了解一下这里发生了什么。

这是什么样的图?

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,您可以到小提琴图的帮助页面。

你能否请看一下我的问题?https://stackoverflow.com/questions/65458335/r-using-microbenchmark-and-ggplot2-to-plot-runtimes 谢谢。 - stats_noob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接