Qu'est-ce que autoplot?microbenchmark en fait l'intrigue?

d'Après les docs, microbenchmark:::autoplot "utilise ggplot2 pour produire un graphique plus lisible des minuteries microbenchmark."

Cool! Essayons le code exemple:

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

je ne vois rien sur la...visqueux ondulations dans la documentation, mais ma meilleure supposition de cette réponse par la fonction de créateur c'est que c'est comme lissée série de boxplots du temps pris pour exécuter, avec les quartiles supérieur et inférieur connecté sur le corps de la forme. Peut-être? Ces parcelles semblent trop intéressantes pour ne pas savoir ce qui se passe ici.

Qu'est-ce un complot?

13
demandé sur Community 2014-06-27 16:12:54

1 réponses

La réponse courte est un violon parcelle:

il s'agit d'un tracé en boîte avec un tracé en rotation de la densité du grain de chaque côté.


le plus long plus intéressant(?) réponse. Lorsque vous appelez l' autoplot fonction, vous êtes en fait en appelant

## class(ts) is microbenchmark
autoplot.microbenchmark

nous pouvons alors inspecter l'appel de fonction réel via

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

La ligne + stat_ydensity(). En regardant ?stat_ydensity vous venir à la page d'aide sur violon parcelle.

6
répondu csgillespie 2016-09-18 10:13:02