Целочисленное форматирование тепловой карты Seaborn - PullRequest
0 голосов
/ 25 марта 2020

У меня есть график с отображением целых чисел. Поскольку цифры довольно высоки, мне было интересно, можно ли написать k вместо 000? Так что 417924 станет 418k.

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 Ответ

0 голосов
/ 25 марта 2020

Вы можете определить свою собственную аннотацию с параметром annot. Создайте отдельный массив с 'k' и примените его к вашей тепловой карте. Вам также нужно установить fmt на '':

rnd = np.round(confusion_matrix/1000).astype(int)
annot = np.char.add(rnd.astype(str), 'k')
sns.heatmap(confusion_matrix, annot=annot, fmt='', cmap="Purples",  
            xticklabels=x_axis_labels, yticklabels=y_axis_labels, ax=ax)
...