summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorBirte Kristina Friesel <birte.friesel@uos.de>2023-12-14 14:33:00 +0100
committerBirte Kristina Friesel <birte.friesel@uos.de>2023-12-14 14:33:00 +0100
commitddd575bad607fb1483555001ae04fb8d41d229cd (patch)
treef43dbd4ba10b2029d57b3b3486bf1461cacf0f41 /bin
parent71a950990e6654022317264277754d25cb830d9f (diff)
analyze-log: add --boxplot-param option
Diffstat (limited to 'bin')
-rwxr-xr-xbin/analyze-log.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/bin/analyze-log.py b/bin/analyze-log.py
index 0ea7921..23d3e46 100755
--- a/bin/analyze-log.py
+++ b/bin/analyze-log.py
@@ -174,6 +174,39 @@ def main():
show=not args.non_interactive,
)
+ if args.boxplot_param:
+ title_suffix = None
+ if args.filter_param:
+ title_suffix = "filter: " + ", ".join(
+ map(lambda kv: f"{kv[0]}={kv[1]}", args.filter_param)
+ )
+ by_param = model.get_by_param()
+ for name in model.names:
+ attr_names = sorted(model.attributes(name))
+ param_keys = list(
+ map(lambda kv: kv[1], filter(lambda kv: kv[0] == name, by_param.keys()))
+ )
+ param_desc = list(
+ map(
+ lambda param_key: ", ".join(
+ map(
+ lambda ip: f"{model.param_name(ip[0])}={ip[1]}",
+ enumerate(param_key),
+ )
+ ),
+ param_keys,
+ )
+ )
+ for attribute in attr_names:
+ dfatool.plotter.boxplot(
+ param_desc,
+ list(map(lambda k: by_param[(name, k)][attribute], param_keys)),
+ output=f"{args.boxplot_param}{name}-{attribute}.pdf",
+ title_suffix=title_suffix,
+ ylabel=attribute,
+ show=not args.non_interactive,
+ )
+
if args.cross_validate:
xv_method, xv_count = args.cross_validate.split(":")
xv_count = int(xv_count)