我使用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