Two things that would be useful to add here: 

1. An option to have the plot be either logarithmic in the x-axis or log-log

2. An auto-ranging technique for the y-axis.  The plot you've got here shows numbers like "0.00007", which would be better expressed as "70 microseconds" or similar.  This is a good use case for a `Quantity` - just do something like this before the plot command:
```
qmean = y_arr.mean() * u.second
for ui in (u.minute, u.second, u.millisecond, u.microsecond, u.nanosecond):
    val = qmean.to(ui).value
    if 1000 > val >= 1
else:
    ui = u.second
y_arr = (y_arr * u.second).to(ui).value
```