Getting percentages in legend from pie matplotlib

2019-08-14 16:36发布

I have created a pie chart using matplotlib below:

labels = ['dogs','cats','birds','fish']
sizes = [34, 24,18,13]
pie = plt.pie(sizes,autopct='%1.1f%%', startangle=90)
plt.axis('equal')
plt.legend( loc = 'right', labels=labels)
plt.show()

(sorry I do not know how to show the pie chart on here)

Instead of having the percentages on the pie slices, is there a way to put these percentages within the legend so that the legend reads:

dogs, 34%

cats, 24%

birds, 18%

fish, 13%

I know I can just change the "labels" to read the above as the fastest and most elegant way, but what if you do not know "sizes" until after the code is ran?

1条回答
再贱就再见
2楼-- · 2019-08-14 16:59

I assume by the time you draw the legend, you should know sizes. Something like this would do it:

plt.legend( loc = 'right', labels=['%s, %1.1f %%' % (l, s) for l, s in zip(labels, sizes)])

查看更多
登录 后发表回答