如何在Python中调整混淆矩阵热力图的统一颜色刻度(0-100)
统一混淆矩阵颜色刻度的调整方法
你遇到的问题是因为ConfusionMatrixDisplay默认会根据当前混淆矩阵的数值范围自动适配颜色映射,导致不同总和的矩阵之间,相同颜色可能对应不同数值。要让所有混淆矩阵的颜色强度统一基于0-100的尺度,只需要在plot()方法里手动指定vmin和vmax参数即可:
修改后的代码如下:
import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay cm = confusion_matrix(y_true, y_pred, labels=["Up", "Down"]) disp = ConfusionMatrixDisplay(confusion_matrix=cm,display_labels=["Up", "Down"]) # 固定颜色映射的范围为0到100 disp.plot(cmap="OrRd", vmin=0, vmax=100) plt.show()
vmin=0:强制颜色映射的最小值对应数值0vmax=100:强制颜色映射的最大值对应数值100
这样不管每个混淆矩阵的数值总和是多少,颜色强度都会严格按照0-100的尺度来对应,数值22和32的颜色自然会有明显差异,所有矩阵的颜色标尺也能保持一致。
内容的提问来源于stack exchange,提问作者Farid
相关产品推荐
相关产品推荐

