我正在尝试使用seaborn和matplotlib绘制一系列混淆矩阵,但是我遇到了一个奇怪的问题。当我尝试使用sharedx和sharedy刻度创建子图时,除最后一个子图外,最终图将反转。
当为多个海洋热图绘制相同混淆矩阵时,除最后一个热图外,每个热图都将反转。正确的confusion_matrix是[[50,0],[0,50]],即使将相同的混乱矩阵传递给每个热图生成器,也只能在第1行第1行中看到。
import numpy as np
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
import seaborn as sn
# Getting toy data
y_true = np.zeros(100)
y_true[50:] = 1
y_pred = np.zeros(100)
y_pred[50:] = 1
confusion_matrix = confusion_matrix(y_true, y_pred)
# plotting
fig, axes = plt.subplots(2,2, sharex='all', sharey='all')
axes_flat = axes.flatten(order='F')
counter = 0
for i in range(2):
for j in range(2):
sn.heatmap(confusion_matrix, annot=True, xticklabels=False,
yticklabels=False, cbar=False, ax=axes_flat[counter])
counter += 1
plt.show()
但是,当我使用与上面完全相同的代码时,除了无花果,axes = plt.subplots(2,2)(没有sharedx或sharedy)。剧情是正确的!我是在做错什么还是这是一个错误?