scipy.cluster.hierarchy.dendrogramにてlabels
でラベル指定できます。
さらに以下ではラベルが重ならないようにleaf_rotation
で傾けています。
Python
1import pandas as pd
2import matplotlib.pyplot as plt
3from scipy.cluster.hierarchy import linkage, dendrogram
4from scipy.spatial.distance import squareform, pdist
5import random
6
7# テストデータ
8random.seed(110)
9N = 20
10df = pd.DataFrame({
11 'name':[f'Name{i}' for i in range(N)],
12 'v1':[random.randint(1,10) for _ in range(N)],
13 'v2':[random.randint(1,10) for _ in range(N)]
14 })
15print(df)
16
17data = df.iloc[:,1:]
18data = squareform(pdist(data))
19clu = linkage(data, method='ward', metric='euclidean')
20
21fig, ax = plt.subplots()
22dendrogram(clu, labels=df['name'].values, leaf_rotation=80)
23fig.tight_layout()
24plt.show()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。