2014-06-27 14 views
10

Zgodnie z dokumentami, microbenchmark:::autoplot "Używa ggplot2, aby uzyskać bardziej czytelny wykres czasów mikrobacji."Co właściwie wypisuje autoplot.microbenchmark?

Fajnie! Spróbujmy przykładowy kod:

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

nie widzę nic na temat ... squishy falowania w dokumentacji, ale mój najlepszy przypuszczenie od this answer by the function creator jest to, że jest jak wygładzonej serii wykresy boków czasu potrzebnego do uruchomienia, z górnymi i dolnymi kwartyliami połączonymi nad korpusem kształtu. Może? Te wątki wyglądają zbyt ciekawie, by nie dowiedzieć się, co się tutaj dzieje.

Co to jest fabuła?

Odpowiedz

5

Krótka odpowiedź jest violin plot:

Jest to działka pudełko z obróconym działki gęstości jądra z każdej strony.


Im dłużej ciekawsze (?) Odpowiedzi. Po wywołaniu funkcji autoplot, że faktycznie dzwoni

## class(ts) is microbenchmark 
autoplot.microbenchmark 

Możemy następnie sprawdzać rzeczywistą wywołanie funkcji poprzez

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 

Kluczem jest to, + stat_ydensity(). Patrząc na ?stat_ydensity jesteś na stronie pomocy dotyczącej wykresów skrzypcowych.