Python中热图的层次聚类
我有一个大小为NxM的矩阵,里面的值从0到20不等。我用Matplotlib和pcolor很容易就能生成热图。现在我想用scipy来进行层次聚类和生成树状图。我想重新排列每个维度(行和列),这样就能显示哪些元素是相似的(根据聚类的结果)。如果这个矩阵是方形的(NxN),那么代码大概会是这样的:
clustering = linkage(matrix, method="average")
dendrogram(clustering, orientation='right')
那么当矩阵的维度不同时,我该如何获得链接矩阵呢?我需要手动计算每一对元素之间的距离吗?
1 个回答
3
我不太确定怎么用 matplotlib
和 pcolor
来实现你想要的效果。不过,seaborn
这个库本身就支持你想做的事情。
示例:
import seaborn as sns; sns.set()
flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
g = sns.clustermap(flights)