我是情节新手,需要绘制具有组平均链接的树状图。
我知道distfun
中有一个create_dendrogram()
参数,但我不知道要传递给该参数以获取Group Average Linkage。 distfun
参数显然必须是可调用的。我应该给它传递什么功能?
作为旁注,我有一个示例的成对距离矩阵
0
13 0
2 14 0
17 1 18 0
当我传递给create_dendrogram()
方法时,似乎会产生错误的结果。我在这里错了吗?
代码:
import plotly.figure_factory as ff
import numpy as np
X = np.matrix([[0,0,0,0],[13,0,0,0],[2,14,0,0],[17,1,18,0]])
names = list("0123")
fig = ff.create_dendrogram(X, orientation='left', labels=names)
fig.update_layout(width=800, height=800)
fig.show()
从字面上从我应该做的情节网站bc idk复制的代码。该网站:https://plotly.com/python/v3/dendrogram/
您可以使用scipy.cluster.hierarchy.linkage()
选择链接方法通过scipy.cluster.hierarchy.linkage()
函数中的linkagefun
参数。
例如,使用create_dendrogram()
:
UPGMA (Unweighted Pair Group Method with Arithmetic mean) algorithm
请注意,import plotly.figure_factory as ff
import scipy.cluster.hierarchy as sch
import numpy as np
X = np.matrix([[0,0,0,0],[13,0,0,0],[2,14,0,0],[17,1,18,0]])
names = "0123"
fig = ff.create_dendrogram(X,
orientation='left',
labels=names,
linkagefun=lambda x: sch.linkage(x, "average"),)
fig.update_layout(width=800, height=800)
fig.show()
必须是数据样本的矩阵。