我使用seaborn.clustermap
生成了一个群集图。我想显示row_colors
选项以突出显示某些聚类,但这是我得到的结果:
clustermap with missing row_colors
在这里你可以找到我的代码:
pal = sns.light_palette('red', np.unique(labels).size)
lut = dict(zip(np.unique(labels), pal))
row_colors = pd.Series(labels, name='clusters').map(lut)
sns.clustermap(my_data, method='ward', robust=True, row_colors=row_colors)
但是,如果我从seaborn文档中运行示例,我就不会有任何问题:
iris = sns.load_dataset("iris")
species = iris.pop("species")
lut = dict(zip(species.unique(), "rbg"))
row_colors = species.map(lut)
g = sns.clustermap(iris, row_colors=row_colors)
为什么突出显示在我的代码中不起作用?
答案 0 :(得分:3)
非常感谢你的回答错误。我发现了问题。我有一个MultiIndex数据帧,由于某种原因它没有绘制row_color。实际上这是虹膜示例代码的唯一区别。
我刚刚解决了这个问题:
sns.clustermap(my_data.reset_index(drop=True), method='ward', robust=True, row_colors=row_colors)
现在可行:
我不知道这是否可以被视为一个错误,但它看起来像。 也许这有助于解决它。