我有一个脚本,可以根据CSV文件创建饼图。当我阅读只有一行的CSV(例如percent = [100]
)时,我的问题就出现了。使用饼图有任何限制,只有一个项目不会100%显示?似乎该错误与startangle
或explode
参数有关。
我的代码是:
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()
谢谢!
答案 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'>