diff --git a/scripts/plot_whisker.py b/scripts/plot_whisker.py index 27c4830..5ef18cb 100755 --- a/scripts/plot_whisker.py +++ b/scripts/plot_whisker.py @@ -10,10 +10,13 @@ Quoting from the matplotlib documentation: import argparse import json +import numpy as np import matplotlib.pyplot as plt +import matplotlib.cm as cm parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("file", help="JSON file with benchmark results") +parser.add_argument("--title", help="Plot Title") args = parser.parse_args() with open(args.file) as f: @@ -22,7 +25,14 @@ with open(args.file) as f: commands = [b["command"] for b in results] times = [b["times"] for b in results] -plt.boxplot(times, labels=commands) +boxplot = plt.boxplot(times, vert=True, patch_artist=True) +cmap = plt.cm.get_cmap("rainbow") +colors = [cmap(val / len(times)) for val in range(len(times))] + +for patch, color in zip(boxplot["boxes"], colors): + patch.set_facecolor(color) + +plt.title(args.title) +plt.legend(handles=boxplot["boxes"], labels=commands, loc="best", fontsize="medium") plt.ylabel("Time [s]") -plt.ylim(0, None) plt.show()