aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/admin/report/piechart.py40
1 files changed, 40 insertions, 0 deletions
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")
+