Seaborn Heatmap общая сумма - PullRequest
0 голосов
/ 25 марта 2020

Привет, у меня есть тепловая карта морского происхождения, и я хотел бы добавить сумму каждой строки справа и сумму каждого столбца в нижней части моей тепловой карты. Это возможно?

confusion_matrix = ([[417924,  67554],
       [ 24901,  11070]])

x_axis_labels = ['predicted_non_churns','predicted_churns'] # labels for x-axis
y_axis_labels = ['actual_non_churns','actual_churns'] # labels for y-axis

ax = plt.axes()
ax.set_title('Confusion Matrix',fontsize=14, fontweight='bold')

sn.heatmap(confusion_matrix, annot=True, cmap="Purples",  
           xticklabels=x_axis_labels, yticklabels=y_axis_labels, fmt='g', ax=ax) # font size

1 Ответ

1 голос
/ 25 марта 2020

Вы можете просто взять сумму матрицы беспорядка вдоль осей и сложить ее себе, используя функции суммирования numpy.

import numpy as np
import seaborn as sn
import matplotlib.pyplot as plt

confusion_matrix = np.array([[417924,  67554],
                             [ 24901,  11070]])

confusion_matrix = np.hstack((confusion_matrix,confusion_matrix.sum(axis=1).reshape(-1,1)))
confusion_matrix = np.vstack((confusion_matrix,confusion_matrix.sum(axis=0).reshape(1,-1)))

x_axis_labels = ['predicted_non_churns','predicted_churns','col1+col2'] # labels for x-axis
y_axis_labels = ['actual_non_churns','actual_churns','row1+row2'] # labels for y-axis

ax = plt.axes()
ax.set_title('Confusion Matrix',fontsize=14, fontweight='bold')

sn.heatmap(confusion_matrix, annot=True, cmap="Purples",  
           xticklabels=x_axis_labels, yticklabels=y_axis_labels, fmt='g', ax=ax) # font size

link

...