Python中热图的层次聚类

2 投票
1 回答
12022 浏览
提问于 2025-04-28 04:14

我有一个大小为NxM的矩阵,里面的值从0到20不等。我用Matplotlib和pcolor很容易就能生成热图。现在我想用scipy来进行层次聚类和生成树状图。我想重新排列每个维度(行和列),这样就能显示哪些元素是相似的(根据聚类的结果)。如果这个矩阵是方形的(NxN),那么代码大概会是这样的:

clustering = linkage(matrix, method="average")
dendrogram(clustering, orientation='right')

那么当矩阵的维度不同时,我该如何获得链接矩阵呢?我需要手动计算每一对元素之间的距离吗?

暂无标签

1 个回答

3

我不太确定怎么用 matplotlibpcolor 来实现你想要的效果。不过,seaborn 这个库本身就支持你想做的事情。

你可以在这里查看相关信息

示例:

import seaborn as sns; sns.set()
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
g = sns.clustermap(flights)

示例聚类图

撰写回答