From e83e1f787c223b198a747fe0679c4679d2ae64d9 Mon Sep 17 00:00:00 2001 From: Eugene Obrezkov Date: Fri, 20 Mar 2020 15:08:26 +0200 Subject: [PATCH] Update plot_whisker.py --- scripts/plot_whisker.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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()