我想创建一个matplotlib饼图,在每个楔形的顶部写上每个楔形的值。
文档建议我应该使用autopct
来完成此操作。
自动CT:[无|格式串|format function]如果不是None,则是用于使用数值标记楔形的字符串或函数。标签将放置在楔形内部。如果是格式字符串,则标签为fmt % pct。如果是函数,则将调用它。
不幸的是,我不确定这个格式字符串或格式函数应该是什么。
使用下面这个基本示例,如何在楔形顶部显示每个数值?
plt.figure()
values = [3, 12, 5, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels=labels) #autopct??
plt.show()
7条答案
按热度按时间wyyhbhjk1#
autopct
使您可以使用Python字符串格式显示百分比值。例如,如果autopct='%.2f'
,则对于每个饼图楔形,格式字符串为'%.2f'
,该楔形的数字百分比值为pct
,因此楔形标签设置为字符串'%.2f'%pct
。产量
通过提供
autopct
的可调用函数,可以做一些更有趣的事情。要同时显示百分比值和原始值,可以这样做:同样,对于每个饼图楔形,matplotlib提供百分比值
pct
作为参数,但这次它作为参数发送给函数my_autopct
,楔形标签设置为my_autopct(pct)
。gstyhher2#
您可以:
oxcyiej73#
使用lambda和format可能更好
vltsax254#
应该是
以防止舍入误差。
ws51t4hk5#
由于
autopct
是function used to label the wedges with their numeric value,您可以根据需要在其中写入任何标签或格式化项目数量。对我来说,显示百分比标签的最简单方法是使用lambda:或者在某些情况下,您可以将数据标记为
对于您的代码,要显示百分比,可以用途:
结果会是:
njthzxwz6#
autopct
使您能够使用Python字符串格式显示每个切片的百分比值。例如,
如果您想在饼图上显示%符号,您必须写入/添加:
bjp0bcyl7#
在matplotlib gallary的帮助下,以及StackOverflow用户的提示,我得出了下面的饼图。autopct显示了成分的数量和种类。
Piechart showing the amount and of percent of a sample recipe ingredients
Pie chart showing the salary and percent of programming Language users