Как замаскировать верхний треугольник ковариационной матрицы в sns.heatmap вместе с порогом ковариации?

#python #seaborn #heatmap #correlation #mask

Вопрос:

Чтобы замаскировать ковариации ниже порогового значения, я могу использовать следующее:

 corr = df.corr(method = 'spearman')
sns.heatmap(corr, cmap = 'RdYlGn_r', mask = (corr <= T))
 

теперь, как я могу замаскировать верхний треугольник с помощью порогового условия корреляции?

Ответ №1:

Вы можете объединить обе маски с помощью функции logical or ( | ).

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

 import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame(data=np.random.rand(7, 10), columns=[*'abcdefghij'])
corr = df.corr(method='spearman')
trimask = np.triu(np.ones_like(corr, dtype=bool))
sns.heatmap(corr, cmap='RdYlGn_r', mask=trimask | (np.abs(corr) <= 0.4), annot=True)

plt.tight_layout()
plt.show()
 

треугольная тепловая карта с маской

Комментарии:

1. Это здорово! Большое спасибо!