aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Thompson <daniel.thompson@linaro.org>2021-04-21 11:39:12 +0100
committerDaniel Thompson <daniel.thompson@linaro.org>2021-04-21 11:39:12 +0100
commit2c17100501bd8394d0cfd5ed417057791a83215f (patch)
tree6706b20eec9f1e349a13a77dc0c69f4aefe8d694
parent937d93946f4dd24e20c77ed4c27fdb69db9d57fa (diff)
lib: chart: Updates for better quarterly reports
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
-rw-r--r--lib/python/toys/chart.py20
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()