libs/utils/analysis should make separation between plotting and analysis more clear
Created by: joelagnel
Currently LISA's libs/utils/analysis/ is more geared towards plotting. I think this limits its reuse to just collect some data without having to plot. For example sometimes it may be only desired to get a single number as an analysis result.
Even analysis results in tabular form can actually provide as a DataFrame result instead of the analysis module trying to plot it. This also makes the analysis part of the code hard to read as it interferes with the plotting logic. I feel the plotting logic should be separate and independent of the analysis logic. Then the user can do whatever they want with those results. The granularity should be at that level and the plotters should be in their own modules. Probably libs/utils/analysis/plot/ or something along those lines. Even if a new module isn't created, I feel we should break down functions into smaller units and do the plotting separately in separate function. This will make LISA more useful as well in the long run.
I also feel the same about the Trace class. It has too many things about CPU frequency and other assumptions in it. I feel it shouldn't be mandatory to pass a platform parameter there if someone just wants to create a trace object.