From 47f972639bc616ec1c9446774a2909726cbf050c Mon Sep 17 00:00:00 2001 From: Daniel Saad Nogueira Nunes Date: Mon, 27 Mar 2023 15:45:45 -0300 Subject: Create piechart.py (#25) Adding piechart.py to generate piecharts. --- src/admin/report/piechart.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/admin/report/piechart.py (limited to 'src') diff --git a/src/admin/report/piechart.py b/src/admin/report/piechart.py new file mode 100644 index 0000000..75e5a9d --- /dev/null +++ b/src/admin/report/piechart.py @@ -0,0 +1,40 @@ +import matplotlib.pyplot as plt +import sys + +filename = sys.argv[1] +title = sys.argv[2] + +label=[] +value=[] +color = [] +with open(filename,'r') as f: + for line in f: + tokens = line.split() + c = tokens[-1] + problem_data = ' '.join(tokens[0:-1]) + l,v = problem_data.split(':') + if(int(v)>0): + label.append(l+'('+v+')') + value.append(v) + color.append(c) + + +wedges, texts, autotexts = plt.pie(value, colors=color,autopct=lambda p: '{:.1f}%'.format(round(p)) if p > 0 else '',pctdistance=1.2,wedgeprops= {"edgecolor":"black", + 'linewidth': 1, + 'antialiased': False}) + +plt.legend(wedges, label, + loc="center left", + bbox_to_anchor=(1.1, 0, 0.5,1)) +# Add title +plt.title(title,pad=20) +if(len(sys.argv)<=3): + plt.legend(label, bbox_to_anchor=(1.1,0.5), loc="center right", fontsize=10, + bbox_transform=plt.gcf().transFigure,shadow=True) +else: + plt.legend(label,loc="lower center", bbox_to_anchor=(0.5,-0.1), fontsize=10, + bbox_transform=plt.gcf().transFigure,shadow=True) +# Show plot +# plt.tight_layout() +plt.savefig(filename.replace('.txt','.png'),dpi=600,transparent=True, bbox_inches="tight") + -- cgit v1.2.3