matplotlib - 如何使用 matplotlib autopct?

我想创建一个matplotlib饼图。

文档建议我使用autopct来做这个。


plt.figure()
values = [3, 12, 5, 8] 
labels = ['a', 'b', 'c', 'd'] 
plt.pie(values, labels=labels) #autopct??
plt.show()

时间:

autopct允许使用python字符串格式显示百分比值,因此,标签设置为字符串autopct='%.2f'。


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

要同时显示百分比值和原始值,可以执行以下操作:


import matplotlib.pyplot as plt

plt.figure()
values = [3, 12, 5, 8] 
labels = ['a', 'b', 'c', 'd'] 

def my_autopct(pct):
 total=sum(values)
 val=int(pct*total/100.0)
 return '{p:.2f}% ({v:d})'.format(p=pct,v=val)

plt.pie(values, labels=labels, autopct=my_autopct)
plt.show()


val=int(pct*total/100.0)

应该是


val=int((pct*total/100.0)+0.5)

防止舍入错误。

...