2014-06-27 5 views
10

Gemäß den Dokumenten, microbenchmark:::autoplot "Verwendet ggplot2, um eine leserlichere Grafik von Microbenchmark Timings zu erzeugen."Was zeichnet autoplot.microchemmark eigentlich?

Cool! Nehmen wir das Beispiel Code versuchen:

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

Ich sehe nichts über den ... matschig Wellen in der Dokumentation, aber meine beste Vermutung von this answer by the function creator ist, dass dies wie eine geglättete Reihe ist von Boxplots der Laufzeiten, wobei die oberen und unteren Quartile über den Körper der Form verbunden sind. Könnte sein? Diese Plots sehen zu interessant aus, um nicht herauszufinden, was hier vor sich geht.

Worum handelt es sich?

Antwort

5

Die kurze Antwort ist ein violin plot:

Es ist ein Box-Plot mit einem gedrehten Kerndichte Plot auf jeder Seite.


Je länger interessanter (?) Antwort. Wenn Sie die autoplot Funktion aufrufen, rufen Sie tatsächlich

## class(ts) is microbenchmark 
autoplot.microbenchmark 

Wir prüfen dann den Anruf eigentliche Funktion über

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 

Der Schlüssel Linie ist + stat_ydensity(). Mit Blick auf ?stat_ydensity Sie kommen Sie auf die Hilfeseite auf Violin-Plots.