У меня есть данные, для которых я создаю модель связи, например:
model = sc.linkage(data, 'ward')
Где модель выглядит следующим образом:
Z = np.array([
[ 2. , 9. , 20.12172148, 2. ],
[ 0. , 1. , 26.16772232, 2. ],
[ 11. , 12. , 29.40258214, 2. ],
[ 14. , 16. , 30.89332011, 3. ],
[ 3. , 7. , 33.70695832, 2. ],
[ 5. , 13. , 34.22180543, 2. ],
[ 4. , 15. , 35.52080322, 3. ],
[ 17. , 21. , 45.3919152 , 5. ],
[ 6. , 20. , 45.56339627, 3. ],
[ 8. , 23. , 66.42828305, 4. ],
[ 10. , 22. , 87.52531145, 6. ],
[ 18. , 24. , 93.78070161, 7. ],
[ 19. , 26. , 124.09967826, 9. ],
[ 25. , 27. , 160.11685636, 15. ]])
Z == model # returns true
Затем я могу построить эту модель связи, используя matplotlib
:
# calculate full dendrogram
plt.figure(figsize=(25, 10))
plt.title('Hierarchical Clustering Dendrogram for signature data')
plt.xlabel('sample index')
plt.ylabel('distance')
sc.dendrogram(
model,
leaf_rotation=90., # rotates the x axis labels
leaf_font_size=8., # font size for the x axis labels
)
plt.show()

Теперь, это строит дендограмму и устанавливает символы в индекс. Я хотел бы заменить это фактическими метками, которые
labels = ['wood', 'stone', 'flora', 'liquid', 'food', 'metal', 'ceramic',
'sky', 'glass', 'paper', 'animal', 'skin', 'fabrics', 'gem', 'ground']
как показано, первый тик на оси x гласит 10. Какие будут метки [10]. Однако я не могу узнать, как получить доступ к этому индексу.