我使用scipy.cluster.hierarchy
中的dendogram
函数生成树状图。我创建树形图并使用它:用matplotlib绘制更新的树状图
linkage_matrix = ward(dist)
dendrogram(linkage_matrix, orientation="left", labels=names)
plt.tight_layout()
plt.show()
一切工作正常,直到现在。我想要做的是更新树状图的叶标记并绘制一个新的树形图。我尝试了两种方式:
- 使用这里提到的
leaf_label_func
为:https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.hierarchy.dendrogram.html
但这都不尽如人意。我得到一个错误,n
不存在,这实际上是真的。函数中没有n
。
- 手动更新名称的树状图列表,然后将其添加到树状图。
`
linkage_matrix = ward(dist)
dend = dendrogram(linkage_matrix, orientation="left", labels=names)
leaf_names = dend['ivl']
for idx, item in enumerate(leaf_names):
if 'c' in item:
item = item+'_c'
leaf_names[idx] = item
if 'i' in item:
item = item+'_i'
leaf_names[idx] = item
dend['ivl'] = leaf_names
plt.tight_layout()
plt.show()
`
然而,这正显示出剧情依然是树状图的旧版本,但如果我print(dend)
,新叶的名字似乎是在那里。我在这里做错了什么?
你需要与其他种类的情节在这里更新您的情节一个例子,但逻辑应该是相同的:https://开头计算器/ 45946607/animation-doesnt-work-in-python/45946682#45946682 – Dadep
我试过了,似乎不起作用。你能告诉我在我的代码中使用这个位置吗? @Dadep – ifreak