Удалите маскированные элементы с рисунка в seaborn.heatmap - PullRequest
0 голосов
/ 06 марта 2019

Если маскировать определенные элементы в тепловой карте seaborn с помощью параметра mask, маска отображает пустое пространство в верхней части рисунка, как можно увидеть в этом быстром примере.

# generate some random data
x = [np.random.rand() for x in range(0,20)]
y = [np.random.rand() for y in x]
data = pd.DataFrame([x,y]) # cast it into a dataframe
corr = data.corr() # get the correlation values


# generate a mask
mask = []
l = [True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False]
for i in range(0,10):
    mask.append([True for x in range(0,20)])
for i in range(0,10):
    mask.append(l)
mask = np.array(mask)

sb.heatmap(corr,mask=mask)

enter image description here

Есть ли способ построить изображение, чтобы замаскированная область была удалена из графика, чтобы это выглядело примерно так:

enter image description here

1 Ответ

1 голос
/ 06 марта 2019

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

masked_corr = corr.loc[~np.all(mask, axis=1), ~np.all(mask, axis=0)]
sns.heatmap(masked_corr)

даст

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...