From c7be935da3764a4dcd4149e7b06151b9c9711696 Mon Sep 17 00:00:00 2001 From: David Peter Date: Fri, 2 Feb 2024 17:51:31 +0100 Subject: [PATCH] Improve plot_progression.py script --- scripts/plot_progression.py | 42 +++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/scripts/plot_progression.py b/scripts/plot_progression.py index 2545a57..f3a0d89 100755 --- a/scripts/plot_progression.py +++ b/scripts/plot_progression.py @@ -30,32 +30,48 @@ parser.add_argument( metavar="num_runs", help="Width of the moving-average window (default: N/5)", ) +parser.add_argument( + "--no-moving-average", + action="store_true", + help="Do not show moving average curve", +) + args = parser.parse_args() with open(args.file) as f: results = json.load(f)["results"] -label = results[0]["command"] -times = results[0]["times"] -num = len(times) -nums = range(num) +for result in results: + label = result["command"] + times = result["times"] + num = len(times) + nums = range(num) -plt.scatter(x=nums, y=times, marker=".", color="orange") -plt.ylim([0, None]) -plt.xlim([-1, num]) + plt.scatter(x=nums, y=times, marker=".") + plt.ylim([0, None]) + plt.xlim([-1, num]) -moving_average_width = ( - num // 5 if args.moving_average_width is None else args.moving_average_width -) + if not args.no_moving_average: + moving_average_width = ( + num // 5 if args.moving_average_width is None else args.moving_average_width + ) -moving_average = moving_average(times, moving_average_width) -plt.plot(nums, moving_average, "-", color="blue") + average = moving_average(times, moving_average_width) + plt.plot(nums, average, "-") if args.title: plt.title(args.title) -plt.legend(labels=[label], loc="best", fontsize="medium") + +legend = [] +for result in results: + legend.append(result["command"]) + if not args.no_moving_average: + legend.append("moving average") +plt.legend(legend) + plt.ylabel("Time [s]") + if args.output: plt.savefig(args.output) else: