#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 )