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")