2014-06-27 15 views
10

Secondo i documenti, microbenchmark:::autoplot "Utilizza ggplot2 per produrre un grafico più leggibile dei tempi dei microbenchmark."Cosa traccia in realtà di autoplot.microbenchmark?

Cool! Proviamo il codice di esempio:

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

non vedo nulla circa i ... ondulazioni squishy nella documentazione, ma la mia ipotesi migliore da this answer by the function creator è che questo è come una serie di lisciato riquadri del tempo impiegato per correre, con i quartili superiore e inferiore collegati sul corpo della forma. Può essere? Questi grafici sembrano troppo interessanti per non scoprire cosa sta succedendo qui.

Di che trama è?

risposta

5

La risposta breve è un violin plot:

Si tratta di un box plot con una trama densità di kernel ruotato su ogni lato.


Il più lungo più interessante (?) Risposta. Quando si chiama la funzione autoplot, in realtà si sta chiamando

## class(ts) is microbenchmark 
autoplot.microbenchmark 

Possiamo quindi ispezionare la chiamata di funzione attuale 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 linea chiave è + stat_ydensity(). Guardando ?stat_ydensity si vieni alla pagina di aiuto sui grafici del violino.

Problemi correlati