Я строю дендрограмму и усекаю ее, чтобы показать только 6 самых больших кластеров. Кроме того, маркировка выполняется с помощью простой функции листовой метки:
def llf(id):
return str(id)
tree = sch.dendrogram(Z, truncate_mode='lastp',
leaf_label_func=llf, p=6, show_contracted=False,
show_leaf_counts=False, leaf_rotation=90,
no_labels = False, orientation='right')
Мой вывод выглядит так:
Моя цель - заменить неописательные метки для листьев минимальным значением членов внутри этого кластера. Например, если верхний лист - это кластер, который содержит диапазон от 10 до 1000, то я хотел бы заменить «2468» на 10. Реальная логика замены тиков на графике проста для реализации:
fig, ax = plt.subplots()
mislabels = ["foo" for i in range(7)]
ax.set_xticklabels(mislabels, fontsize=10, rotation=45)
Есть какие-нибудь идеи относительно того, как извлечь ценности из лидеров?
Пока что я могу отобразить каждый синглтон-лист на его кластер с помощью fcluster. Однако, это только отображает мои первоначальные 1230 точек в кластер. Мне нужно сопоставить точку, помеченную как «2468», с ее кластером, и я не уверен, как это сделать.
Спасибо!