diff options
author | Daniel Thompson <daniel.thompson@linaro.org> | 2021-04-21 11:39:12 +0100 |
---|---|---|
committer | Daniel Thompson <daniel.thompson@linaro.org> | 2021-04-21 11:39:12 +0100 |
commit | 2c17100501bd8394d0cfd5ed417057791a83215f (patch) | |
tree | 6706b20eec9f1e349a13a77dc0c69f4aefe8d694 | |
parent | 937d93946f4dd24e20c77ed4c27fdb69db9d57fa (diff) |
lib: chart: Updates for better quarterly reports
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
-rw-r--r-- | lib/python/toys/chart.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/python/toys/chart.py b/lib/python/toys/chart.py index 61efa24..037a0ca 100644 --- a/lib/python/toys/chart.py +++ b/lib/python/toys/chart.py @@ -20,6 +20,7 @@ def get_colour(s): 'Marvell' : 'green', 'Hisilicon' : 'pink', 'Qualcomm' : 'blue', + 'Support & Solutions Engineering' : 'orange', # Daniel Thompson and Leo Yan both hash orange 'Daniel Thompson' : 'green', @@ -31,6 +32,8 @@ def get_colour(s): return '#{}'.format(hashlib.md5(str(s).encode('UTF-8')).hexdigest()[-6:]) def stacked_barchart(things, filename, title=None, xlabel=None, ylabel=None): + plt.figure(figsize=(8, 6), dpi=72) + x_labels = sorted(things.keys()) legend_labels = set() @@ -53,7 +56,7 @@ def stacked_barchart(things, filename, title=None, xlabel=None, ylabel=None): values) ] # Now we must reverse plots in order to match it back up with the - # legend labels + # legend label plots.reverse() if title: @@ -64,11 +67,12 @@ def stacked_barchart(things, filename, title=None, xlabel=None, ylabel=None): plt.ylabel(ylabel) plt.xticks([ x+0.5 for x in left ], x_labels, rotation=90) - lgd = plt.legend(plots, legend_labels, bbox_to_anchor=(1.05, 1), loc=2) + lgd = plt.legend(plots, legend_labels, ncol=2, bbox_to_anchor=(0.5, -0.45), loc='lower center') plt.savefig(filename, bbox_extra_artists=(lgd,), bbox_inches='tight') plt.close() -def piechart(things, filename, title=None): +def piechart(things, filename, title=None, legend=True): + plt.figure(figsize=(4, 3), dpi=72) labels = None if isinstance(things, dict): labels = sorted(things.keys()) @@ -79,13 +83,17 @@ def piechart(things, filename, title=None): colours = [ get_colour(l) for l in labels ] - wedges, texts = plt.pie(counts, colors=colours, startangle=90) + if legend: + wedges, _ = plt.pie(counts, colors=colours, startangle=90) + else: + wedges, _, _ = plt.pie(counts, colors=colours, autopct='%.1f%%', startangle=90) for w in wedges: w.set_edgecolor('black') - plt.legend(wedges, collect.add_percent_labels(labels, counts), loc="best") + if legend: + plt.legend(wedges, collect.add_percent_labels(labels, counts), loc="best") plt.axis('equal') if title: plt.suptitle(title, fontsize=14) plt.tight_layout() - plt.savefig(filename) + plt.savefig(filename, bbox_inches='tight') plt.close() |