修复混淆矩阵绘图线

tas*_*n95 7 python confusion-matrix scikit-learn

我正在尝试绘制一个混淆矩阵,如下所示

cm  = confusion_matrix(testY.argmax(axis=1), predictions.argmax(axis=1))

disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=lb.classes_)
disp = disp.plot(include_values=True, cmap='viridis', ax=None, xticks_rotation='horizontal')

plt.show()
Run Code Online (Sandbox Code Playgroud)

结果:

我得到的混淆矩阵

正如您所看到的,它显示了框的轴而不是框的轮廓。由于轴的原因,我看不到黄色框外面的数字。我不擅长情节。所以我不知道我需要改变什么。

我的期望: 期望矩阵

找到解决方案

plt.tick_params(axis=u'both', which=u'both',length=0)
plt.grid(b=None)
Run Code Online (Sandbox Code Playgroud)

Asa*_*f R 5

关闭网格

例如,

import matplotlib.pyplot as plt
fig, _ = plt.subplots(nrows=1, figsize=(10,10))
ax = plt.subplot(1, 1, 1)
ax.grid(False)

...

disp = ConfusionMatrixDisplay(...)
_ = disp.plot(..., ax=ax, ...)
Run Code Online (Sandbox Code Playgroud)


Har*_*yan 0

更改函数cmap中的参数plot()。它代表用颜色对整数值进行颜色映射。

查看

https://matplotlib.org/3.1.0/tutorials/colors/colormaps.html

更多细节。

作为答案

cm  = confusion_matrix(testY.argmax(axis=1), predictions.argmax(axis=1))

disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=lb.classes_)
disp = disp.plot(include_values=True, cmap='Blues', ax=None, xticks_rotation='horizontal')

plt.show()
Run Code Online (Sandbox Code Playgroud)