I have the following code to generate a pretty donut chart:
%matplotlib inline
import matplotlib.pyplot as plt
size_of_groups=[12,11,30,3]
colors = ['#F92969','#FACA0C','#17C37B','#D9DFEB']
my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors)
plt.setp(my_pie, width=0.6, edgecolor='white') #
plt.show()
I'm not doing the method where you put a circle in the middle of your donut chart - this is because I need the interior of my plot to be transparent for another purpose.
Right now, the above outputs this:
However, when I change the code to add the ,autopct="%.1f%%"
line, it breaks, but outputs a pie chart with labels anyway (though not a donut):
%matplotlib inline
import matplotlib.pyplot as plt
size_of_groups=[12,11,30,3]
colors = ['#F92969','#FACA0C','#17C37B','#D9DFEB']
my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%")
plt.setp(my_pie, width=0.6, edgecolor='white') #
plt.show()
The error is:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-39-ada97a3edee3> in <module>
13
14 # Create a pieplot
---> 15 my_pie,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%")
16
17 #,autopct="%.1f%%"
ValueError: too many values to unpack (expected 2)
I'm unclear as to what this is, and I'm especially bamboozled that I'm having some output anyway, just without the hole in the center. Any help would be appreciated!
Try this:
my_pie,_,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%")
Adding autopct
adds another return value to plt.pie, so we need to assign it to something - hence the extra ,_
.
autotexts : list
A list of Text instances for the numeric labels. This will only be returned if the parameter autopct is not None.
Output: