我想修改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()
方法。
任何想法如何设置滴答声?
答案 0 :(得分:5)
就像seaborn.heatmap
seaborn.clustermap
有一个参数cbar_kws
(colorbar关键字参数)。这需要一个matplotlib colorbar函数可能参数的字典。因为使用matplotlib,我们会将ticks
参数用于colorbar以手动设置滴答,我们可以提供这样的字典
g = sns.clustermap(..., cbar_kws={"ticks":[0.25,1]})
获取颜色栏中0.25
和1
的刻度线。 (如果你想要更多的标记,那么列表当然可以扩展。)
完整代码:
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()