我想使用matplotlib制作饼图。我正在使用python 2.7。我正在尝试使用来自 here stackoverflow帖子的输入来重新创建给定this的示例。但是,我一直遇到错误。
这是我的代码:
import matplotlib.pyplot as plt
topic = ['A', 'B', 'C', 'D', \
'E', 'F', 'G', 'H', 'I' \
'J']
labels = list(topic)
sizes = [18.7, 18.4, 12.7, 8.5, 3.4, 2.4, 1.8, 1.7, 1.5, 30.9]
explode = (0, 0.1, 0, 0, 0, 0, 0, 0, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode=explode, labels=labels,
autopct='%1.1f%%',
shadow=True, startangle=90)
ax1.axis('equal')
plt.show()
这是我得到的错误:
Traceback (most recent call last):
File "occupation_pie.py", line 13, in <module>
shadow=True, startangle=90)
File "/anaconda2/lib/python2.7/site-packages/matplotlib/__init__.py", line 1867, in inner
return func(ax, *args, **kwargs)
File "/anaconda2/lib/python2.7/site-packages/matplotlib/axes/_axes.py", line 2867, in pie
raise ValueError("'label' must be of length 'x'")
ValueError: 'label' must be of length 'x'
如何使我的代码正常工作?
答案 0 :(得分:1)
是否故意在,
中丢失了topics
?
尝试更改topic = ['A', 'B', 'C', 'D', \
'E', 'F', 'G', 'H', 'I' \
'J']
到
topic = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']