exponenta event banner

древовидная диаграмма

Дендрограммный график

Описание

пример

dendrogram(tree) генерирует график дендрограммы иерархического двоичного дерева кластера. Дендрограмма состоит из множества U-образных линий, соединяющих точки данных в иерархическом дереве. Высота каждой U представляет расстояние между двумя соединяемыми точками данных.

  • Если в исходном наборе данных 30 или менее точек данных, то каждый лист в дендрограмме соответствует одной точке данных.

  • Если точек данных более 30, то dendrogram сворачивает нижние ветви так, чтобы было 30 листовых узлов. В результате некоторые листья на графике соответствуют более чем одной точке данных.

пример

dendrogram(tree,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение.

пример

dendrogram(tree,P) генерирует график дендрограммы не более P листовые узлы. Если их более P точки данных в исходном наборе данных, затем dendrogram сворачивает нижние ветви дерева. В результате некоторые листья на графике соответствуют более чем одной точке данных.

dendrogram(tree,P,Name,Value) использует дополнительные параметры, заданные одним или несколькими аргументами пары имя-значение.

пример

H = dendrogram(___) генерирует график дендрограммы и возвращает вектор дескрипторов линий. Можно использовать любой из входных аргументов из предыдущих синтаксисов.

пример

[H,T,outperm] = dendrogram(___) также возвращает вектор, содержащий номер конечного узла для каждого объекта в исходном наборе данных, Tи вектор, задающий порядок меток узлов листьев, как показано в дендрограмме, outperm.

  • Полезно вернуться T когда количество конечных узлов, P, меньше общего количества точек данных, так что некоторые конечные узлы на дисплее соответствуют нескольким точкам данных.

  • Порядок меток узлов, указанный в outperm слева направо для горизонтальной дендрограммы и снизу вверх для вертикальной дендрограммы.

Примеры

свернуть все

Создать образец данных.

rng('default') % For reproducibility
X = rand(10,3);

Создание иерархического двоичного дерева кластера с помощью linkage. Затем постройте график дендрограммы с использованием опций по умолчанию.

tree = linkage(X,'average');

figure()
dendrogram(tree)

Figure contains an axes. The axes contains 9 objects of type line.

Создать образец данных.

rng('default') % For reproducibility
X = rand(10,3);

Создание иерархического двоичного дерева кластера с помощью linkage.

tree = linkage(X,'average');

D = pdist(X);
leafOrder = optimalleaforder(tree,D)
leafOrder = 1×10

     3     7     6     1     4     9     5     8    10     2

Постройте график дендрограммы с использованием оптимального порядка листьев.

figure()
dendrogram(tree,'Reorder',leafOrder)

Figure contains an axes. The axes contains 9 objects of type line.

Порядок листовых узлов на графике дендрограммы соответствует - слева направо - перестановке в leafOrder.

Создать образец данных.

rng('default') % For reproducibility
X = rand(100,2);

В исходном наборе данных имеется 100 точек данных, X.

Создание иерархического двоичного дерева кластера с помощью linkage. Затем постройте график дендрограммы для полного дерева (100 узлов листа), задав входной аргумент P равно 0.

tree = linkage(X,'average');
dendrogram(tree,0)

Figure contains an axes. The axes contains 99 objects of type line.

Теперь постройте график дендрограммы только с 25 листовыми узлами. Возврат сопоставления исходных точек данных с конечными узлами, показанными на графике.

figure
[~,T] = dendrogram(tree,25);

Figure contains an axes. The axes contains 24 objects of type line.

Перечислите исходные точки данных, которые находятся в конечном узле 7 графика дендрограммы.

find(T==7)
ans = 7×1

     7
    33
    60
    70
    74
    76
    86

Создать образец данных.

rng('default') % For reproducibility
X = rand(10,3);

Создание иерархического двоичного дерева кластера с помощью linkage. Затем постройте график дендрограммы с вертикальной ориентацией, используя порог цвета по умолчанию. Верните маркеры перемещения к линиям, чтобы можно было изменить ширину линий дендрограммы.

tree = linkage(X,'average');
H = dendrogram(tree,'Orientation','left','ColorThreshold','default');
set(H,'LineWidth',2)

Figure contains an axes. The axes contains 9 objects of type line.

Входные аргументы

свернуть все

Иерархическое двоичное дерево кластера, указанное как матрица (M-1) -by-3, создаваемая с помощьюlinkage, где M - количество точек данных в исходном наборе данных.

Максимальное число конечных узлов, включаемых в график дендрограммы, указанное как положительное целое значение.

  • Если есть P или меньше точек данных в исходном наборе данных, то каждый лист в дендрограмме соответствует одной точке данных.

  • Если их более P точки данных, затем dendrogram сворачивает нижние ветви так, чтобы были P листовые узлы. В результате некоторые листья на графике соответствуют более чем одной точке данных.

    Если не указать P, то dendrogram использует 30 в качестве максимального числа конечных узлов. Для отображения полного дерева установите P равно 0.

Типы данных: single | double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Orientation','left','Reorder',myOrder задает вертикальную дендрограмму с листьями в порядке, указанном myOrder.

Порядок узлов листа на графике дендрограммы, указанный как пара, разделенная запятыми, состоящая из 'Reorder' и вектор, задающий порядок узлов в полном дереве. Вектор порядка должен быть перестановкой вектора 1:M, где M - количество точек данных в исходном наборе данных. Укажите порядок слева направо для горизонтальных дендрограмм и снизу вверх для вертикальных дендрограмм.

Если M больше, чем количество листовых узлов на графике дендрограммы, P (по умолчанию P равно 30), то можно указать только вектор перестановки, не разделяющий группы листьев, соответствующих свернутым узлам.

Типы данных: single | double

Индикатор проверки пересечения ветвей на графике дендрограммы, указанный как разделенная запятыми пара, состоящая из 'CheckCrossing' и либо true или false. Этот параметр полезен только при указании значения для Reorder.

Когда CheckCrossing имеет значение true, dendrogram выдает предупреждение, если порядок узлов листа вызывает пересечение ветвей на графике. Если график дендрограммы не показывает полное дерево (поскольку количество точек данных в исходном наборе данных больше, чем P), dendrogram выдает предупреждение только тогда, когда порядок листовых узлов вызывает пересечение ветвей в дендрограмме, как показано на графике. То есть, нет предупреждения, если порядок вызывает пересечение ветвей в полном дереве, но не в дендрограмме, как показано на графике.

Типы данных: logical

Порог для уникальных цветов на графике дендрограммы, указанный как пара, разделенная запятыми, состоящая из 'ColorThreshold' и либо 'default' или скалярное значение в диапазоне (0,max(tree(:,3))). Если ColorThreshold имеет значение T, то dendrogram присваивает уникальный цвет каждой группе узлов в дендрограмме, связь которых меньше T.

  • Если ColorThreshold имеет значение 'default', то порог, Т, составляет 70% от максимальной связи, 0.7*max(tree(:,3)).

  • Если не указано значение для ColorThresholdили если вы указываете порог за пределами диапазона (0,max(tree(:,3))), то dendrogram использует только один цвет для графика дендрограммы.

Ориентация дендрограммы в окне рисунка, определяемая как разделенная запятыми пара, состоящая из 'Orientation' и одно из этих значений:

'top'Сверху вниз
'bottom'Снизу вверх
'left'Слева направо
'right'Справа налево

Метка для каждой точки данных в исходном наборе данных, указанная как разделенная запятыми пара, состоящая из 'Labels' и символьный массив, строковый массив или массив ячеек символьных векторов. dendrogram помечает любые листья на графике дендрограммы, содержащие одну точку данных с меткой этой точки данных.

Выходные аргументы

свернуть все

Обрабатывает линии на графике дендрограммы, возвращаемые как вектор.

Номера конечных узлов для каждой точки данных в исходном наборе данных, возвращаемые в виде вектора столбца длиной M, где M - количество точек данных в исходном наборе данных.

Когда их меньше, чем P точки данных в исходных данных (P 30, по умолчанию), все точки данных отображаются в дендрограмме, причем каждый узел содержит одну точку данных. В этом случае T - карта идентификации, T = (1:M)'.

T полезен, когда P меньше общего количества точек данных. То есть, когда некоторые листовые узлы в дисплее дендрограммы соответствуют множеству точек данных. Например, чтобы узнать, какие точки данных содержатся в конечном узле k графика дендрограммы, использование find(T==k).

Перестановка меток узлов листьев дендрограммы, как показано на графике, возвращается в виде вектора строки. outperm дает порядок слева направо для горизонтальной дендрограммы, и снизу вверх для вертикальной дендрограммы. Если есть P листья на графике дендрограммы, outperm - перестановка вектора 1:P.

Представлен до R2006a