Согласно ответу ImportanceOfBeingErnest, приведенному ниже, с объяснением документации , plt.py принимает входные данные массива и нормализует значения для вас, если сумма элементов больше 1. * 1003. *
Поскольку ваши значения составляют менее 1, массив не нормализуется. Чтобы нормализовать себя, вы должны разделить каждый элемент на наибольшее значение в списке со следующей строкой:
slices = [aSlice/max(slices) for aSlice in slices]
И я бы добавил это в вашу программу здесь:
import matplotlib.pyplot as plt
total_a = 0.004095232
total_b = 0.05075945
total_c = 0.005425
total_d = 0.022948572
total_e = 0.015012
slices = [total_a,total_b,total_c,total_d,total_e]
slices = [aSlice/max(slices) for aSlice in slices]
activities = ['a', 'b', 'c', 'd','e']
cols = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue', 'orangered']
plt.pie(slices,labels=activities,autopct='%1.1f%%',colors=cols,startangle=140,shadow=True)
plt.show()
Для меня тогда получается такой график:
![The properly rendered pie chart](https://i.stack.imgur.com/tqC2v.png)