Некоторые вопросы о дендрограмме – питоне (Scipy)

Я новичок в scipy, но мне удалось получить ожидаемую дендрограмму. Я еще несколько вопросов;

  1. В дендрограмме расстояние между некоторыми точками равно 0 но не видно из-за границы изображения. Как удалить границу и сделать нижний предел оси Y равным -1 , чтобы она была хорошо видна. например, расстояние между этими точками равно 0 (13,17), (2,10), (4,8,19)
  2. Как я могу обрезать / усекать на определенном расстоянии. например, на 0.4
  3. Как написать эти кластеры (после обрезки) в файл

Мой код python:

 import scipy import pylab import scipy.cluster.hierarchy as sch import numpy as np D = np.genfromtxt('LtoR.txt', dtype=None) def llf(id): return str(id) fig = pylab.figure(figsize=(10,10)) Y = sch.linkage(D, method='single') Z1 = sch.dendrogram(Y,leaf_label_func=llf,leaf_rotation=90) fig.show() fig.savefig('dendrogram.png') 

Дендрограмма: введите описание изображения здесь

Спасибо.

3 Solutions collect form web for “Некоторые вопросы о дендрограмме – питоне (Scipy)”

1. fig.gca().set_ylim(-0.4,1.2) Здесь gca() возвращает текущий объект axes , поэтому вы можете дать ему имя

 ax=fig.gca() ax.set_ylim(-0.4,ax.get_ylim()[1]) 
  1. Вы можете обрезать дендрограмму и получить свои кластеры с помощью fcluster . Чтобы отрезать на расстоянии 0,4:

    clusters = sch.fcluster(Y,t = 0.4,criterion = 'distance')

  2. Результирующий массив ( clusters ) содержит метку кластера для каждого наблюдения в ваших данных. Вы можете написать массив, используя numpy.savetxt :

    np.savetxt('clusters.txt', clusters, delimiter=',')

Граница показана из-за оси. Таким образом, вы можете удалить границу, используя следующую команду:

 fig = plt.figure(figsize=(10, 8)) ax2 = fig.add_axes([0.3, 0.71, 0.6, 0.2]) Y = sch.linkage(D, method='ward') Z2 = sch.dendrogram(Y) ax2.set_xticks([]) ax2.set_yticks([]) ax2.axis('off') 

ax.axis('off') скрывает границу.

  • интерполировать до определенного времени
  • Рекомендация импорта SciPy / NumPy
  • Python - SciPy Kernal Пример оценки - Плотность >> 1
  • Выбор элементов словаря с помощью ключа эффективно в Python
  • Ошибка Scipy с использованием модуля оптимизации. Ошибка преобразования массива в fortran
  • В чем разница между numpy.linalg.lstsq и scipy.linalg.lstsq?
  • Проверить положительную или полуположительную определенную матрицу
  • Удаление полностью изолированных ячеек из массива Python?
  • Python - лучший язык программирования в мире.