2017-05-19 249 views
4

我想修改seaborn.clustermap中顏色條的刻度。 This answer解決了這個問題的一般matplotlib彩條。seaborn clustermap:設置顏色條刻度

g = sns.clustermap(np.random.rand(20,20), 
        row_cluster=None, col_cluster=None, 
        vmin = 0.25, vmax=1.0) 

出於某種原因,當我指定clustermap(..., vmin=0.25, vmax=1.0),我得到蜱從0.3到0.9,但沒有1.0。如果我擴展vmax=1.05,我會在1.05處得到一個刻度。

我的猜測是clustermap返回的對象的g.cax屬性是colorbar,但它沒有.set_ticks()方法。

任何想法如何設置蜱?

+2

你的問題是明確的,但如果你寫了這樣一個例子這將是最好的有人可以輕鬆地複製和粘貼它開始幫助你。 – mwaskom

回答

5

就像seaborn.heatmapseaborn.clustermap有一個參數cbar_kws(colorbar關鍵字參數)。這需要matplotlib彩條功能可能參數的字典。因爲與matplotlib,我們將使用ticks參數以手動設置刻度線以彩條,我們可以提供這樣

g = sns.clustermap(..., cbar_kws={"ticks":[0.25,1]}) 

一本字典在彩條0.251獲得刻度線。 (當然,清單可以延長,如果你想要更多的刻度線。)

完整代碼:

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

g = sns.clustermap(np.random.rand(20,20), 
        row_cluster=None, col_cluster=None, 
        vmin = 0.25, vmax=1.0, cbar_kws={"ticks":[0.25,1]}) 

plt.show() 

enter image description here