网格与imshow矩阵不正确

时间:2020-03-27 12:46:23

标签: python matplotlib matrix plot imshow

我正在尝试制作一个混淆矩阵图,或者只是一个带有象限和某些东西的图。我使用了imshow。

cm = [[370288,  5190],
       [ 2213,   6758]]

with plt.style.context("seaborn-white"):

    ax = plt.gca()
    ax.imshow(cm, interpolation='none', vmin=1, vmax=1)
    classNames = ['no churn','churn']
    ax.set_title('Confusion Matrix',fontsize=20, fontweight='bold', color='indigo')
    ax.set_ylabel('actual',fontsize=15, fontweight='bold')
    ax.set_xlabel('predicted',fontsize=15, fontweight='bold')
    tick_marks = np.arange(len(classNames))
    plt.xticks(tick_marks, classNames)
    plt.yticks(tick_marks, classNames, rotation=90)
    plt.grid(color='indigo', linestyle='-', linewidth=5)
    s = [['TN','FP'], ['FN', 'TP']]



    for i in range(2):
        for j in range(2):
            plt.text(j,i, str(s[i][j])+" = "+annot[i][j], size=12, ha='center', va='center')
    plt.show()

不幸的是,我无法使网格正确。如果我添加

ax.set_xticks(np.arange(-.5, 1.5, 1))
ax.set_yticks(np.arange(-.5, 1.5, 1))

则网格是正确的,但x和y轴标签不再居中,并且左右边框也不为粗体。我该如何使用粗体边框和正确的网格将整个图分成四个象限?

0 个答案:

没有答案