2016-09-14 2 views
-2

У меня есть скрипт, который создает круговую диаграмму на основе файлов CSV. Моя проблема началась, когда я читал CSV, который имел только одну строку (например, percent = [100]). Есть ли ограничение использования круговой диаграммы, где не будет отображаться 100% только для одного элемента? Похоже, что ошибка связана либо с аргументами startangle, либо с explode.Проблема с круговой диаграммой matplotlib - startangle/len()

Мой код:

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

Изменение параметра explodelist:

percent = [100] 
explode = [0] 

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

Если у вас есть несколько значений, вы можете использовать tuple, но с одним значением (int) рассматривается как целое число:

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

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

вы решаемой мой вопрос. благодаря! – Gonzalo

Смежные вопросы