В моем коде ниже я использую
import mplcursors
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
labels_true = [1,2,3,4,5,6]
labels_pred = [1,2,3,1,2,3]
# confusion_matrix
cm = confusion_matrix(labels_true, labels_pred, normalize='true')
# dataframe
df_cm = pd.DataFrame(cm)
, затем либо
# option 1:
sns.heatmap(df_cm, annot=True, linewidths=1, cmap="Blues_r",xticklabels=2, square=True)
, либо, альтернативно,
# option 2:
plt.imshow(df_cm)
, затем
# clickable cells
# cursor = mplcursors.cursor(heatmap, hover=False)
cursor = mplcursors.cursor(hover=False)
@cursor.connect("add")
def on_add(sel):
i,j = sel.target.index
text = 'Test message!'
sel.annotation.set_text(text)
plt.show()
Когда я использую вариант 1, я получаю , что имеет плюс, что каждая ячейка имеет номерную метку; но также есть минус, что на ячейки нельзя нажимать.
Когда я использую вариант 2, я получаю , который имеет плюс, что я могу щелкнуть по ячейкам; но у меня есть минус, что я не вижу числа, помеченного на каждой клетке.
Разве нет способа, которым я могу получить лучшее из обоих миров? Я хочу, чтобы числа на ячейки И кликабельные ячейки. Спасибо!