为什么colorbar没有标准化(0到1)?怎么逼呢?

时间:2017-03-21 14:07:22

标签: python-3.x matplotlib scikit-learn visualization confusion-matrix

我正在绘制一个混淆矩阵。我使用了ScikitLearn的功能。但我不知道为什么colorbar没有从0到1的范围。有没有办法强迫它?

import itertools
def plot_confusion_matrix(cm, title='Confusion matrix RF', cmap=plt.cm.viridis):
plt.imshow(cm, interpolation='nearest', cmap=cmap) 
plt.title(title)
plt.colorbar() 
tick_marks = np.arange(len(np.unique(y))) 

plt.xticks(tick_marks, rotation=90)
ax = plt.gca()
ax.set_xticklabels(['s'+lab for lab in (ax.get_xticks()+1).astype(str)])
plt.yticks(tick_marks)
ax.set_yticklabels(['s'+lab for lab in (ax.get_yticks()+1).astype(str)])

plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')




cm_imp = confusion_matrix(y_true, y_pred)
cm_imp_normalized = cm_imp.astype('float') / cm_imp.sum(axis=1)[:, np.newaxis] 
plt.figure(figsize=(8,6)) 
plot_confusion_matrix(cm_imp_normalized)
plt.show() 
print("")
print("")

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用vmin, vmax的{​​{1}}参数设置颜色范围。

imshow