treeplot

Постройте изображение дерева

Описание

пример

treeplot(p) графики одно или несколько деревьев, заданных как вектор-строка из родительских индексов. p(i) = j указывает на тот узел j родительский элемент узла i, и p(i) = 0 указывает на тот узел i корневой узел.

пример

treeplot(p,NodeSpec,EdgeSpec) устанавливает стиль линии, символ маркера и цвет для узлов и ребер в древовидном графике. Использование не использовать NodeSpec или EdgeSpec аргумент.

Примеры

свернуть все

Постройте двоичное дерево с 7 узлами.

Задайте вектор-строку, где каждый элемент содержит индекс своего родительского узла. Задайте корневой узел со значением 0. Например, задайте родительский элемент узла 1 как 2, родительский элемент узла 2 как 4, родительский элемент узла 3 как 2, и так далее.

p = [2 4 2 0 6 4 6]
p = 1×7

     2     4     2     0     6     4     6

Постройте двоичное дерево с помощью treeplot.

treeplot(p)

Figure contains an axes object. The axes object contains 2 objects of type line.

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

[x,y] = treelayout(p);
text(x + 0.02,y,{1,2,3,4,5,6,7})

Figure contains an axes object. The axes object contains 9 objects of type line, text.

Другая альтернатива, чтобы представлять древовидную структуру должна использовать digraph объект. Можно затем визуализировать структуру с plot.

Создайте digraph объект с помощью синтаксиса digraph(s,t) это задает ребра ориентированного графа (s,t) в парах. Визуализируйте дерево с plot. Подавите стрелы от родительского элемента до дочерних узлов путем установки ShowArrows опция к false.

g = digraph(p(p~=0),find(p));
plot(g,"ShowArrows",false)

Figure contains an axes object. The axes object contains an object of type graphplot.

Постройте два дерева. Задайте узел 1 и узел 7 как корневые узлы путем установки их родительских индексов на 0. Используйте синие круги для узлов и красные пунктирные линии с перекрестными маркерами для ребер.

p = [0 1 1 2 3 3 0 7 7];
treeplot(p,'bo','rx:')

Figure contains an axes object. The axes object contains 2 objects of type line.

Входные параметры

свернуть все

Индексы родительских узлов в виде вектора-строки из положительных целых чисел, меньше чем или равных length(p).

  • Если узел i корневой узел, затем задайте p(i) как 0.

  • Если узел i имеет родительский узел, затем задайте p(i) как родительский элемент узла i.

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

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

Пример: 'ob' представляет круговые маркеры синим цветом

МаркерОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
'p'Пентаграмма
'h'Гексаграмма
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

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

Пример: '--or' красное пунктирное ребро с круговыми маркерами

Стиль ребраОписание
-Сплошная линия
--Пунктирная линия
:Пунктирная линия
-.Штрихпунктирная линия
МаркерОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
'_'Горизонтальная линия
'|'Вертикальная линия
's'Квадрат
'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
'p'Пентаграмма
'h'Гексаграмма
ЦветОписание

y

желтый

m

пурпурный

c

голубой

r

красный

g

зеленый

b

синий

w

белый

k

черный

Советы

  • В качестве альтернативы используйте graph и digraph объекты работать с графиком и сетевыми алгоритмами. Можно визуализировать сети с plot.

Смотрите также

| | | |

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