From d88766b15c82f35b977e3313090fe4c061db2173 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Fri, 1 Dec 2023 13:50:25 +0100 Subject: analyze-log: add --boxplot-unparam support --- bin/analyze-log.py | 16 ++++++++++++++++ lib/cli.py | 6 ++++++ lib/plotter.py | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/bin/analyze-log.py b/bin/analyze-log.py index 3538a98..f833b22 100755 --- a/bin/analyze-log.py +++ b/bin/analyze-log.py @@ -179,6 +179,22 @@ def main(): # output=fname, ) + if args.boxplot_unparam: + for name in model.names: + attr_names = sorted(model.attributes(name)) + dfatool.plotter.boxplot( + attr_names, + [model.by_name[name][attr] for attr in attr_names], + xlabel="Attribute", + output=f"{args.boxplot_unparam}{name}.pdf", + ) + for attribute in attr_names: + dfatool.plotter.boxplot( + [attribute], + [model.by_name[name][attribute]], + output=f"{args.boxplot_unparam}{name}-{attribute}.pdf", + ) + if args.cross_validate: xv_method, xv_count = args.cross_validate.split(":") xv_count = int(xv_count) diff --git a/lib/cli.py b/lib/cli.py index 7bed07d..6ad3513 100644 --- a/lib/cli.py +++ b/lib/cli.py @@ -257,6 +257,12 @@ def add_standard_arguments(parser): type=int, help="Limit precision of dataref export to NDIG decimals", ) + parser.add_argument( + "--boxplot-unparam", + metavar="PREFIX", + type=str, + help="Export boxplots of raw (parameter-independent) observations to {PREFIX}{name}-{attribute}.pdf", + ) parser.add_argument( "--export-xv", metavar="FILE", diff --git a/lib/plotter.py b/lib/plotter.py index 9d6f7ec..78f3f90 100755 --- a/lib/plotter.py +++ b/lib/plotter.py @@ -332,7 +332,7 @@ def plot_param_fit( def boxplot(ticks, measurements, xlabel="", ylabel="", modeldata=None, output=None): fig, ax1 = plt.subplots(figsize=(10, 6)) - fig.canvas.set_window_title("DriverEval") + ax1.set_title("dfatool unparam") plt.subplots_adjust(left=0.1, right=0.95, top=0.95, bottom=0.1) bp = plt.boxplot(measurements, notch=0, sym="+", vert=1, whis=1.5) -- cgit v1.2.3