2017-05-31 129 views
0

有沒有什麼方法可以改變Seaborn熱圖的單元尺寸? 我發現this但我無法按預期工作。Seaborn熱圖減小單元尺寸

所以,我在y軸標籤中有很長的文字。由於所有的文本都被切掉了,我想縮小熱圖的單元大小。我不需要那個大矩形。 (高亮只是舉例)。

enter image description here (我藏標籤名稱。)

當我通過類似改變圖形大小,

plt.figure(figsize=(8, 6)) or 
figure.set_size_inches(12, 12) 

細胞變大,以及使文本仍然被切斷。

這是代碼。

sns.set(font_scale=1.2) 
ax0 = plt.axes() 
ax1 = sns.heatmap(hmap, cbar=0, cmap="YlGnBu",linewidths=2, ax=ax0,vmax=3000, vmin=0) 
ax1.set_title('test heatmap') 

for item in ax1.get_yticklabels(): 
    item.set_rotation(0) 

for item in ax1.get_xticklabels(): 
    item.set_rotation(0) 

figure = plt.gcf() # get current figure 
figure.set_size_inches(12, 12) 
plt.savefig('test.png') , dpi=400) 
+0

您是否嘗試過在你的'sns.heatmap'打電話? –

+0

@NathanWatkins感謝'平方= TRUE'說法!實際工作。你救了我日! –

+0

太棒了!如果您想將其標記爲已回答,我會將其作爲答案發布。 –

回答

0

嘗試使用square=True參數在sns.heatmap電話。這將限制熱圖細胞方形縱橫比。

ax1 = sns.heatmap(hmap, cbar=0, cmap="YlGnBu",linewidths=2, ax=ax0,vmax=3000, vmin=0, square=True) 
2

您實際上不想更改單元格大小,但想要縮小軸的大小。方式來對這樣的:

  • 使用plt.tight_layout()
  • 到側提供更大的空間例如通過fig.subplots_adjust(left=0.4)
  • 創建一個軸,它有你想要的大小,ax1 = fig.add_axes([0.4,0.2,0.5,0.6])(其中數字是[left, bottom, width, height]並使用此軸繪製熱圖,sns.heatmap(... , ax=ax1)