Цикл For для присвоения цветов python-графику

#python #for-loop #plot #data-visualization

#python #цикл for #график #визуализация данных

Вопрос:

Я работаю над циклом for для присвоения номеров классам, и я преуспел в этом, но мне трудно одновременно вставлять разные цвета в зависимости от количества классов, использующих один и тот же цикл for, но я получаю сообщение об ошибке: объект ‘list’ не может быть интерпретирован как целое число

Ниже приведен код:

 n_class = 5
colors = ['r', 'g', 'b', 'y','k', 'y']
# plotting
for i, c in range(n_class, colors):
    plt.plot(fpr[i], tpr[i], linestyle='--',color=[c], label= 'Class %d' %i )
        

plt.title('Multiclass ROC curve')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive rate')
plt.legend(loc='best')
plt.savefig('Multiclass ROC',dpi=300);
  

Комментарии:

1. Вы неправильно используете range . Его форма с двумя аргументами — range (low, high). Что вы на самом деле хотите, так это for i, c in enumerate(colors):

Ответ №1:

Ошибка находится в этой строке

 for i, c in range(n_class, colors):
  

Это довольно просто, все, что вам нужно сделать, это получить длину списка

 for i, c in range(n_class, len(colors)):
  

Но я не думаю, что это главная ошибка, потому что тогда он будет воспринимать это как

 range(5,6)
  

если вы хотите присвоить всем графикам цвет, который вам понадобится

 for i in range(len(colors)):
    plt.plot(fpr[i], tpr[i], linestyle='--',color=colors[i], label= 'Class %d' %i )