如何解决如何使用Matplotlib Python在饼图中显示图例中的所有类别
嗨,我正在尝试绘制图表,但在显示图例方面有些困难。这是我的以下代码:
age = ['below 20','20-30','30-40','40-50']
age_count = [23,35,0]
labels = age
sizes = age_count
fig1,ax1 = plt.subplots()
ax1.pie(sizes,autopct='%1.1f%%',shadow=True,startangle=90)
ax1.legend(labels,bbox_to_anchor=(1,0),loc='lower left')
我不想在饼图中显示带有零计数的类别。我仍然想在图例中显示所有类别名称(即20-30,40-50)。我尝试了上面的代码,但现在可以正常工作。想知道哪里出了问题吗?
解决方法
来自matplotlib.pyplot.pie文档:
“ autopct None或str或可调用,默认值:None
如果不是None,则是一个字符串或函数,用于使用楔形数值标记楔形。标签将放置在楔形物内。如果是格式字符串,则标签将为fmt%pct。如果它是一个函数,它将被调用。”
您可以通过将函数传递给autopct来指定特定的特征,如下所示:
import matplotlib.pyplot as plt
age = ['below 20','20-30','30-40','40-50']
age_count = [23,35,0]
def f(cpt):
if cpt == 0:
return ''
else:
return '%.2f' %cpt
fig1,ax1 = plt.subplots()
ax1.pie(age_count,autopct=f,shadow=True,startangle=90)
ax1.legend(age,bbox_to_anchor=(1,0),loc='lower left')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。