gpt4 book ai didi

python - 从 seaborn clustermap 中提取树状图

转载 作者:行者123 更新时间:2023-11-28 22:15:14 25 4
gpt4 key购买 nike

给出以下示例,该示例来自:https://python-graph-gallery.com/404-dendrogram-with-heat-map/

它生成一个树状图,我假设它是基于 scipy 的。

# Libraries
import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt

# Data set
url = 'https://python-graph-gallery.com/wp-content/uploads/mtcars.csv'
df = pd.read_csv(url)
df = df.set_index('model')
del df.index.name
df

# Default plot
sns.clustermap(df)

问题:如何获得非图形形式的树状图?

背景资料:从那个树状图的根开始,我想把它剪成最大的长度。例如,我们有一条从根到左簇(L)的边和一条到右簇(R)的边...从这两条边我想得到它们的边长并在最长的处切割整个树状图这两个边缘。

最好的问候

最佳答案

clustermap 返回 ClusterGrid 对象的句柄,其中包括每个树状图的子对象,h.dendrogram_col 和 h.dendrogram_row。在这些里面是树状图本身,它提供了树状图的几何形状根据 scipy.hierarchical.dendrogram 返回数据,您可以从中计算特定分支的长度。

h = sns.clustermap(df)
dgram = h.dendrogram_col.dendrogram
D = np.array(dgram['dcoord'])
I = np.array(dgram['icoord'])

# then the root node will be the last entry, and the length of the L/R branches will be
yy = D[-1]
lenL = yy[1]-yy[0]
lenR = yy[2]-yy[3]

链接矩阵,用于计算树状图的输入,也可能有帮助:

h.dendrogram_col.linkage
h.dendrogram_row.linkage

关于python - 从 seaborn clustermap 中提取树状图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52915963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com