autopct
позволяет отображать процентное значение, используя форматирование строки Python. Например, если autopct='%.2f'
, то для каждого кругового клина строка формата равна '%.2f'
, а числовое значение процента для этого клина pct
, поэтому для метки клина задана строка '%.2f'%pct
.
import matplotlib.pyplot as plt
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels, autopct='%.2f')
plt.show()
дает
Вы можете делать более причудливые вещи, предоставляя возможность вызова autopct
. Чтобы отобразить как процентное значение, так и исходное значение, вы можете сделать это:
import matplotlib.pyplot as plt
# make the pie circular by setting the aspect ratio to 1
plt.figure(figsize=plt.figaspect(1))
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
def make_autopct(values):
def my_autopct(pct):
total = sum(values)
val = int(round(pct*total/100.0))
return '{p:.2f}% ({v:d})'.format(p=pct,v=val)
return my_autopct
plt.pie(values, labels=labels, autopct=make_autopct(values))
plt.show()
Опять же, для каждого кругового клина matplotlib предоставляет значение процента pct
в качестве аргумента, хотя на этот раз оно отправляется в качестве аргумента функции my_autopct
. Метка клина установлена на my_autopct(pct)
.