饼图matplotlib问题 - startangle / len()

时间:2016-09-14 11:21:02

标签: python matplotlib charts

我有一个脚本,可以根据CSV文件创建饼图。当我阅读只有一行的CSV(例如percent = [100])时,我的问题就出现了。使用饼图有任何限制,只有一个项目不会100%显示?似乎该错误与startangleexplode参数有关。

我的代码是:

percent = [100]

plt.pie(percent,        # data
    explode=(0),        # offset parameters 
    #labels=country,    # slice labels - removed to hid labels and added labels=country in legend()
    colors=colors,      # array of colours
    autopct='%1.0f%%',  # print the values inside the wedges - add % to the values 
    shadow=False,       # enable shadow
    startangle=70       # starting angle
)

plt.axis('equal')
plt.legend(loc='best', labels=country) 
plt.tight_layout()

startangle = 70行中的错误:

if len(x) != len(explode):
TypeError: object of type 'float' has no len()

谢谢!

1 个答案:

答案 0 :(得分:1)

explode参数更改为list

percent = [100]
explode = [0]

plt.pie(percent, explode=explode, ...)

如果您有更多值,则可以使用tuple,但将一个值(int)视为整数:

>>> type((0))
<type 'int'>
>>> type((0, 1))
<type 'tuple'>

>>> type([0])
<type 'list'>