seaborn clustermap:设置colorbar ticks

时间:2017-05-19 18:02:14

标签: python matplotlib seaborn

我想修改seaborn.clustermap中颜色条的刻度。 This answer针对一般matplotlib颜色栏解决了这个问题。

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精确地打勾。

我的猜测是g.cax返回的对象的clustermap属性是颜色条,但它没有.set_ticks()方法。

任何想法如何设置滴答声?

1 个答案:

答案 0 :(得分:5)

就像seaborn.heatmap seaborn.clustermap有一个参数cbar_kws(colorbar关键字参数)。这需要一个matplotlib colorbar函数可能参数的字典。因为使用matplotlib,我们会将ticks参数用于colorbar以手动设置滴答,我们可以提供这样的字典

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