Search code examples
pythonmatplotlibpie-chartplot-annotations

percent label position in pie chart


Is there a way to change the default position of the percent label in a matplotlib pie chart?

Here is an example pie chart:

My pie chart

Which I have created using:

plt.pie(sizes, labels=labels, colors=colors, explode=explode, autopct='%1.0f%%')

Now I don't like how some percent labels are intruding on other sections teritory (actually the only perpitrator in this example is the 9m section). Ideally I would like such labels to be outside the pie chart with an arrow of some sort pointing to the section, or alternativly just outside the section.


Solution

  • You can control the distance of the percents and labels from the center of the pie using pctdistance= and labeldistance=, try this on your code:

    plt.pie(sizes, labels=labels, autopct='%1.0f%%', pctdistance=1.1, labeldistance=1.2)
    

    You can also set a radius of the pie using radius= (by default is 1)