Изменить высоту цветовой полосы тепловой карты Seaborn

У меня есть следующий код Python для создания тепловой карты с использованием пакета Seaborn:

f, ax = plt.subplots(figsize=(21,5))
heatmap = sns.heatmap(significantBig5[basic].as_matrix().T,mask=labelsDf.T,
     annot=False,fmt='.2f',yticklabels=basic_labels,linewidths=0.5,square=True,
     xticklabels=traits)
plt.xticks(rotation=70)

Это создает следующую тепловую карту: пример тепловой карты

Я хотел бы отформатировать эту тепловую карту так, чтобы цветная полоса справа была короче. Есть ли способ сделать это?


person sealonging314    schedule 28.11.2016    source источник


Ответы (2)


Используйте аргумент cbar_ax и установите желаемую позицию цветной полосы:

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

arr = np.random.random((1,9))
df = pd.DataFrame(arr)
fig, ax = plt.subplots(1, 1)
cbar_ax = fig.add_axes([.905, .3, .05, .3])
sns.heatmap(arr, ax=ax, cbar_ax = cbar_ax, cbar=True)

plt.show()

введите описание изображения здесь

person Serenity    schedule 30.11.2016

Вы также можете использовать дополнительные аргументы ключевого слова для цветовой панели тепловой карты sns cbar_kws. Они изменяют настройки цветовой панели matplotlib, задокументированные здесь

Используя код @Serenity с ключевым словом усадки, мы получаем это:

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

arr = np.random.random((1,9))
df = pd.DataFrame(arr)
sns.heatmap(arr,cbar=True,cbar_kws={"shrink": .82})

plt.show()

введите описание изображения здесь

person Reed Richards    schedule 24.10.2017