错误的混淆矩阵图

时间:2019-07-14 16:18:56

标签: confusion-matrix

在使用pandas数据框绘制混淆矩阵时,y轴的末端会切成一半吗?

这就是我得到的:

Click to see the plot

我从这里How can I plot a confusion matrix?使用了熊猫数据框的代码:

import seaborn as sn
import pandas as pd
import matplotlib.pyplot as plt

array = [[13,1,1,0,2,0],
    [3,9,6,0,1,0],
    [0,0,16,2,0,0],
    [0,0,0,13,0,0],
    [0,0,0,0,15,0],
    [0,0,1,0,0,15]]        
df_cm = pd.DataFrame(array, range(6),range(6))
#plt.figure(figsize = (10,7))
sn.set(font_scale=1.4)#for label size
sn.heatmap(df_cm, annot=True,annot_kws={"size": 16})# font size

3 个答案:

答案 0 :(得分:2)

我解决了这个问题,我认为this post解释了为什么会发生这种情况。

简单来说,matplotlib 3.1.1打破了海上热图;您可以通过降级到matplotlib 3.1.0来解决该问题。

答案 1 :(得分:0)

对您的程序使用以下代码,如果您使用的是Jupyter笔记本,它将起作用。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sn
sn.set()
%matplotlib inline

array = [[13,1,1,0,2,0],
     [3,9,6,0,1,0],
     [0,0,16,2,0,0],
     [0,0,0,13,0,0],
     [0,0,0,0,15,0],
     [0,0,1,0,0,15]]        
df_cm = pd.DataFrame(array, range(6),
                  range(6))
#plt.figure(figsize = (10,7))
sn.set(font_scale=1.4)#for label size
sn.heatmap(df_cm, annot=True,annot_kws={"size": 16})# font size

Output:

我刚刚添加了sn.set()方法,该方法有助于一步设置美学参数。您可以进一步了解herehere

答案 2 :(得分:0)

根据sikisis的建议

以下解决了我的问题

pip install matplotlib==3.1.0