seaborn clustermap:设置colorbar ticks

Dim*_*iev 5 python matplotlib seaborn

我想修改一个颜色条的刻度seaborn.clustermap.这个答案解决了一般matplotlib颜色条的这个问题.

g = sns.clustermap(np.random.rand(20,20), 
                   row_cluster=None, col_cluster=None,
                   vmin = 0.25, vmax=1.0)
Run Code Online (Sandbox Code Playgroud)

出于某种原因,当我指定时clustermap(..., vmin=0.25, vmax=1.0),我会得到0.3到0.9的刻度,但没有1.0.如果我延长vmax=1.05,我会得到一个精确的嘀嗒声1.05.

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

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

Imp*_*est 5

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

g = sns.clustermap(..., cbar_kws={"ticks":[0.25,1]})
Run Code Online (Sandbox Code Playgroud)

获取颜色条上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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述