首页 > 解决方案 > 用层次聚类制作树状图,y轴应该是每一项的元素个数

问题描述

我一直在尝试使用数据框制作树状图,每个单元格都包含值。

       un1  un2   un3  un4  un5 ... 
  mut1 0.5  0.24  0  0  0.4
  mut2 0.1  0.22  0.4  0  0
  mut3 0.3  0  0  0  0
  mut4 0  0  0  0.23  0.66
  ....

从这个链接,我可以做一个树状图,但我想做一些修改

python 如何从数据框制作树状图

我的代码在下面,树状图看起来像这样

import numpy as np
from pandas import *
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import linkage, dendrogram
from scipy.spatial.distance import pdist

df = pandas.read_table('/content/drive/MyDrive/BI/dfs_2/DB15_final_shared_list.vaf.csv', index_col = 0, sep=",", header=0)

print(df)

X = df.T.values #Transpose values 
Y = pdist(X)
Z = linkage(Y)

dendrogram(Z, labels = df.columns)

在此处输入图像描述

我想对 Y 轴进行修改。

目前,我假设 Y 轴代表距离,但我想让它代表

每个项目中的元素数量。

这意味着,“一行'unX'中有多少个不为零的元素”。

假设“un1”列的长度为 15,并且“un1”行中不为零的元素数为 9。

然后从树状图顶部到“un1”树的末尾的长度为 9。

并且分岔的长度是聚类项目之间共享元素的数量。

对不起英语不好。

谢谢你。

标签: pythonhierarchical-clusteringdendrogramphylogeny

解决方案


推荐阅读