如何使用matplotlib python在饼图中显示图例中的所有类别

How to show all categories in legend in pie chart with matplotlib python(如何使用matplotlib python在饼图中显示图例中的所有类别)
本文介绍了如何使用matplotlib python在饼图中显示图例中的所有类别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我正在尝试绘制曲线图,但在显示图例时遇到一些困难。下面是我的代码:

age = ['below 20', '20-30', '30-40', '40-50']


age_count = [23,0,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.ie文档:

自动无或字符串或可调用,默认:无

如果不是None,则是用于用它们的数值标记楔形的字符串或函数。标签将被放置在楔子内。如果它是格式字符串,则标签将为fmt%%。如果它是函数,则将调用它。&q;

您可以通过将函数传递给autopct来指定特定的bihavier,如下所示:

import matplotlib.pyplot as plt
age = ['below 20', '20-30', '30-40', '40-50']
age_count = [23,0,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')

这篇关于如何使用matplotlib python在饼图中显示图例中的所有类别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)