如何使用matplotlib在饼图中显示图例中的所有类别python
How to show all categories in legend in pie chart with 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.pie 文档:
"autopct None or str or callable, default: None
如果不是 None,则为字符串或函数,用于用数值标记楔形。标签将放置在楔形内。如果它是格式字符串,标签将是 fmt % pct。如果是函数,就会调用。"
您可以通过将函数传递给 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')
您好,我正在尝试绘制图表,但在显示图例时遇到了一些困难。下面是我的代码:
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.pie 文档:
"autopct None or str or callable, default: None
如果不是 None,则为字符串或函数,用于用数值标记楔形。标签将放置在楔形内。如果它是格式字符串,标签将是 fmt % pct。如果是函数,就会调用。"
您可以通过将函数传递给 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')