Сканди дендрограмма листовой узел упорядочение - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь изменить порядок листовых узлов в функции графика Scipy dendrogram . Рассмотрим следующий фрагмент:

from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt
dists = [ 2., 10.,  3.]
lx = linkage(dists, 'complete')
dendrogram(lx)
plt.show()

Полученный график дендрограммы:

Dendrogram plot

Я бы хотел изменить порядок листовых узлов на 0, 1, 2 на этом графике. Есть ли простой способ добиться этого?

Я перепробовал все возможные настройки аргументов count_sort и distance_sort из dendrogram, но порядок остается прежним.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Следующий комментарий появляется в исходном коде метода дипрограммы scipy :

# This feature was thought about but never implemented (still useful?):
#
#         ... = dendrogram(..., leaves_order=None)
#
#         Plots the leaves in the order specified by a vector of
#         original observation indices. If the vector contains duplicates
#         or results in a crossing, an exception will be thrown. Passing
#         None orders leaf nodes based on the order they appear in the
#         pre-order traversal.

Так что это актуальный вопрос. Вы можете связаться с разработчиками Scipy ( Списки рассылки проекта SciPy ), чтобы выразить свою заинтересованность в этом улучшении, чтобы они узнали, что оно будет полезным, и уделят ему больше внимания.

0 голосов
/ 28 июня 2018

Я не думаю, что это возможно. Опции count_sort и distance_sort применяются только к узлам-потомкам.

Представьте себе ваш пример с переключенными метками 1 и 2. В этом случае было бы невозможно упорядочить узлы по порядку, так как узел 1 необходимо было бы принудительно установить между парными узлами 0 и 1. Это показывает, что любой процесс упорядочения всех узлов не масштабируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...