1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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")
|