2016-11-28 72 views
2

,我有以下的Python代碼使用Seaborn包來創建一個熱圖:更改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) 

這將創建下列熱圖: sample heatmap

我想格式化這個熱圖使得右側的彩條更短。有沒有辦法做到這一點?

回答

1

使用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() 

enter image description here

+0

謝謝!這很好。 – sealonging314

1

您還可以使用額外的關鍵字參數爲SNS熱圖顏色條的cbar_kws。他們修改了matplotlib彩條的設置文件here

使用@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() 

enter image description here