Reduce graph generation time

- Keep raw data in the memory
- Aggregate data in the resolution of one second to reduce the number of data points for graphing
If i remember correctly, I think in a different pull request we chose not to use numpy.round. We should be consistent one way or the other