highlight

Подсветите узлы и ребра в построенной диаграмме

Описание

пример

highlight(H,nodeIDs) подсвечивает узлы, заданные nodeIDs путем увеличения размеров их маркеров.

пример

highlight(H,G) подсвечивает узлы и ребра графика G путем увеличения их размера маркера узла и ширины линии ребра, соответственно. G должен иметь те же узлы и подмножество ребер базового графика H. Если G содержит повторенные ребра, затем они все подсвечены. Изолированные узлы со степенью 0 не подсвечены.

highlight(H,s,t) подсветки все ребра между заданными входными и выходными парами узла в s и t путем увеличения их ширин линии ребра. Если индексы ребра доступны вместо пар узла (s, t), используйте highlight(H,'Edges',idx) вместо этого.

пример

highlight(___,Name,Value) дополнительные опции использования, заданные одним или несколькими Аргументами пары "имя-значение" с помощью любой из комбинаций входных аргументов в предыдущих синтаксисах. Например, highlight(H,nodes,'NodeColor','g') подсвечивает подмножество узлов путем изменения их цвета в зеленый, вместо того, чтобы увеличить их размер маркера.

Примеры

свернуть все

Создайте и постройте график. Возвратите указатель на GraphPlot объект, h.

s = 1;
t = 2:6;
G = graph(s,t);
h = plot(G,'Layout','force')

h = 
  GraphPlot with properties:

     NodeColor: [0 0.4470 0.7410]
    MarkerSize: 4
        Marker: 'o'
     EdgeColor: [0 0.4470 0.7410]
     LineWidth: 0.5000
     LineStyle: '-'
     NodeLabel: {'1'  '2'  '3'  '4'  '5'  '6'}
     EdgeLabel: {}
         XData: [3.8317e-04 0.6403 0.4648 -1.3929 1.7883 -1.5009]
         YData: [9.6820e-04 1.6734 -1.7296 1.1251 -0.0922 -0.9777]
         ZData: [0 0 0 0 0 0]

  Show all properties

Подсветите узлы 1 и 3 путем увеличения их размера маркера.

highlight(h,[1 3])

Подсветите узлы 1 и 3 путем изменения их цвета.

highlight(h,[1 3],'NodeColor','g')

Создайте и постройте график. Возвратите указатель на GraphPlot объект, h.

s = [1 1 1 1 1 1 2 3 4 5 6 7 7 7 7 8 9 10 11 8 6];
t = [2 3 4 5 6 7 3 4 5 6 2 8 9 10 11 10 10 11 8 1 11];
G = graph(s,t);
h = plot(G)

h = 
  GraphPlot with properties:

     NodeColor: [0 0.4470 0.7410]
    MarkerSize: 4
        Marker: 'o'
     EdgeColor: [0 0.4470 0.7410]
     LineWidth: 0.5000
     LineStyle: '-'
     NodeLabel: {'1'  '2'  '3'  '4'  '5'  '6'  '7'  '8'  '9'  '10'  '11'}
     EdgeLabel: {}
         XData: [1x11 double]
         YData: [1x11 double]
         ZData: [0 0 0 0 0 0 0 0 0 0 0]

  Show all properties

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

[T,p] = minspantree(G);
highlight(h,T,'EdgeColor','r','LineWidth',1.5)

Создайте и постройте график. Возвратите указатель на GraphPlot объект, h.

n = 10;
A = delsq(numgrid('L',n+2));
G = graph(A,'omitselfloops'); 
G.Edges.Weight = ones(numedges(G),1);
h = plot(G);

Подсветите кратчайший путь между узлами 74 и 21 путем изменения цвета узлов и ребер вдоль пути к зеленому.

path = shortestpath(G,74,21);
highlight(h,path,'NodeColor','g','EdgeColor','g')

Создайте график, представляющий квадратную сетку со стороной 8 узлов. Постройте график и возвратите указатель на GraphPlot объект, p.

n = 8;
A = delsq(numgrid('S',n+2));
G = graph(A,'omitselfloops');
p = plot(G);

Найдите соседей узла 36.

n36 = neighbors(G,36)
n36 = 4×1

    28
    35
    37
    44

Используйте highlight изменить цвет узла 36 к зеленому и цвету его соседей и их соединительных ребер к красному.

highlight(p,36,'NodeColor',[0 0.75 0])
highlight(p,n36,'NodeColor','red')
highlight(p,36,n36,'EdgeColor','red')

Создайте и постройте ориентированного графа. Возвратите указатель на GraphPlot объект, h.

G = digraph(bucky);
h = plot(G);

Вычислите максимальный поток между узлами 1 и 56. Задайте два выходных параметров к maxflow возвратить ориентированного графа ненулевых потоков, GF.

[mf,GF] = maxflow(G,1,56)
mf = 3
GF = 
  digraph with properties:

    Edges: [28x2 table]
    Nodes: [60x0 table]

Используйте highlight изменить цвет ребер, которые содержат ненулевые значения потока. Также измените цвет исходного узла 1 и предназначайтесь для узла 56 к зеленому.

highlight(h,GF,'EdgeColor',[0.9 0.3 0.1],'NodeColor',[0.9 0.3 0.1])
highlight(h,[1 56],'NodeColor','g')

Постройте кратчайший путь между двумя узлами в мультиграфе и подсветите определенные ребра, которые пересечены.

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

G = graph([1 1 1 1 1 2 2 3 3 3 4 4],[2 2 2 2 2 3 4 4 5 5 5 2],[2 4 6 8 10 5 3 1 5 6 8 9]);
p = plot(G,'EdgeLabel',G.Edges.Weight);

Найдите кратчайший путь между узлом 1 и узлом 5. Поскольку несколько из пар узла имеют больше чем одно ребро между ними, задают три выходных параметров к shortestpath возвратить определенные ребра, которые пересекает кратчайший путь.

[P,d,edgepath] = shortestpath(G,1,5)
P = 1×5

     1     2     4     3     5

d = 11
edgepath = 1×4

     1     7     9    10

Результаты показывают, что кратчайший путь имеет общую длину 11 и следует за ребрами, данными G.Edges(edgepath,:).

G.Edges(edgepath,:)
ans=4×2 table
    EndNodes    Weight
    ________    ______

     1    2       2   
     2    4       3   
     3    4       1   
     3    5       5   

Подсветите этот путь к ребру при помощи highlight функция с 'Edges' пара "имя-значение", чтобы задать индексы пересеченных ребер.

highlight(p,'Edges',edgepath)

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

свернуть все

Введите график графика, заданный как GraphPlot объект. Используйте graph или digraph функции, чтобы создать график, и затем использовать plot с выходным аргументом, чтобы возвратить GraphPlot объект.

Пример: H = plot(G)

Узлы, чтобы подсветить, заданный как логический вектор, или как один или несколько индексов узла или имен узла. Если nodeIDs логический вектор, затем он должен иметь длину numnodes(G).

Эта таблица показывает различные способы относиться к одному или нескольким узлам или их числовыми индексами узла или их именами узла.

ФормаОдин узелНесколько узлов
Индекс узла

Скаляр

Пример 1

Вектор

Пример: [1 2 3]

Имя узла

Символьный вектор

Пример: 'A'

Массив ячеек из символьных векторов

Пример: {'A' 'B' 'C'}

Скаляр строки

Пример: "A"

Массив строк

Пример: ["A" "B" "C"]

nodeIDs не должен задавать имена узла, которые конфликтуют с любым из дополнительных названий параметра для highlight, такой как 'Edges' или 'EdgeColor'. Используйте findnode чтобы вместо этого передать в узле индексируют для этих случаев.

График, чтобы подсветить, заданный как graph или digraph объект. G должен иметь те же узлы и подмножество ребер базового графика H. Изолированные узлы со степенью 0 не подсвечены.

Пары узла, заданные в качестве отдельных аргументов индексов узла или имен узла. Столь же расположенные элементы в s и t задайте входные и выходные узлы для ребер в графике.

s и t не должен задавать имена узла, которые конфликтуют с любым из дополнительных названий параметра для highlight, такой как 'Edges' или 'EdgeColor'. Используйте findnode чтобы вместо этого передать в узле индексируют для этих случаев.

Пример: highlight(H,[1 2],[3 3]) подсвечивает ребра графика (1,3) и (2,3).

Пример: highlight(H,'a','b') подсветки все ребра от 'a' к 'b'.

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

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

Пример: highlight(H,nodes,'NodeColor','y')

Ребра, чтобы подсветить

свернуть все

Ребра, чтобы подсветить, заданный как разделенная запятой пара, состоящая из 'Edges' и скалярный индекс ребра, вектор индексов ребра или логический вектор. Используйте эту пару "имя-значение", чтобы подсветить определенное ребро между узлами, когда несколько ребер будут существовать между теми же двумя узлами.

Значением этой пары "имя-значение" может быть третий выход от shortestpath или shortestpathtree, такой как [path,d,edgepath] = shortestpath(…).

Пример: highlight(p,'Edges',edgepath)

Свойства ребра

свернуть все

Цвет обводки, заданный как разделенная запятой пара, состоящая из 'EdgeColor' и триплет RGB, шестнадцатеричный цветовой код или название цвета.

  • Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

    • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

    • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

    Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

    Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
    'red''r'[1 0 0]'#FF0000'

    'green''g'[0 1 0]'#00FF00'

    'blue''b'[0 0 1]'#0000FF'

    'cyan' 'c'[0 1 1]'#00FFFF'

    'magenta''m'[1 0 1]'#FF00FF'

    'yellow''y'[1 1 0]'#FFFF00'

    'black''k'[0 0 0]'#000000'

    'white''w'[1 1 1]'#FFFFFF'

    Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

    Триплет RGBШестнадцатеричный цветовой кодВнешний вид
    [0 0.4470 0.7410]'#0072BD'

    [0.8500 0.3250 0.0980]'#D95319'

    [0.9290 0.6940 0.1250]'#EDB120'

    [0.4940 0.1840 0.5560]'#7E2F8E'

    [0.4660 0.6740 0.1880]'#77AC30'

    [0.3010 0.7450 0.9330]'#4DBEEE'

    [0.6350 0.0780 0.1840]'#A2142F'

Пример: plot(G,'EdgeColor','r') создает график графика с красными ребрами.

Стиль линии, заданный как разделенная запятой пара, состоящая из 'LineStyle' и один из стилей линии перечислен в этой таблице.

'characters'Стиль линииПолучившаяся линия
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая линияНикакая линия

Ширина линии ребра, заданная как разделенная запятой пара, состоящая из 'LineWidth' и положительное значение в модулях точки.

Пример: 0.75

Размер стрелы, заданный как положительное значение в модулях точки. Значение по умолчанию ArrowSize 7 для графиков с 100 или меньшим количеством узлов и 4 для графиков больше чем с 100 узлами.

ArrowSize используется только в ориентированных графах.

Пример: 15

Положение стрелы вдоль ребра, заданного как значение в [0 1]. Значение около 0 стрел мест ближе к исходному узлу и значению около 1 стрелы мест ближе к целевому узлу. Значением по умолчанию является 0.5 так, чтобы стрелы были промежуточными между входными и выходными узлами.

ArrowPosition используется только в ориентированных графах.

Свойства узла

свернуть все

Цвет узла, заданный как разделенная запятой пара, состоящая из 'NodeColor' и триплет RGB, шестнадцатеричный цветовой код или название цвета.

  • Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

    • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

    • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

    Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

    Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
    'red''r'[1 0 0]'#FF0000'

    'green''g'[0 1 0]'#00FF00'

    'blue''b'[0 0 1]'#0000FF'

    'cyan' 'c'[0 1 1]'#00FFFF'

    'magenta''m'[1 0 1]'#FF00FF'

    'yellow''y'[1 1 0]'#FFFF00'

    'black''k'[0 0 0]'#000000'

    'white''w'[1 1 1]'#FFFFFF'

    Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

    Триплет RGBШестнадцатеричный цветовой кодВнешний вид
    [0 0.4470 0.7410]'#0072BD'

    [0.8500 0.3250 0.0980]'#D95319'

    [0.9290 0.6940 0.1250]'#EDB120'

    [0.4940 0.1840 0.5560]'#7E2F8E'

    [0.4660 0.6740 0.1880]'#77AC30'

    [0.3010 0.7450 0.9330]'#4DBEEE'

    [0.6350 0.0780 0.1840]'#A2142F'

Пример: plot(G,'NodeColor','k') создает график графика с узлами с неизвестным потоком.

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

ЗначениеОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
'square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
'pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' или 'h'Шестиконечная звезда (гексаграмма)
'none'Никакие маркеры

Пример: '+'

Пример: 'diamond'

Размер маркера узла, заданный как разделенная запятой пара, состоящая из 'MarkerSize' и положительное значение в модулях точки. Размером маркера по умолчанию является 4 для графиков с 100 или меньшим количеством узлов и 2 для графиков больше чем с 100 узлами.

Пример: 10

Узел и метки ребра

свернуть все

Цвет метки Node, заданный как триплет RGB, шестнадцатеричный цветовой код или название цвета.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: plot(G,'NodeLabel',C,'NodeLabelColor','m') создает график графика с пурпурными марками узла.

Цвет метки ребра, заданный как триплет RGB, шестнадцатеричный цветовой код или название цвета.

Триплеты RGB и шестнадцатеричные цветовые коды полезны для определения пользовательских цветов.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должна быть в области значений [0,1]; например, [0.4 0.6 0.7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#) сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут лежать в диапазоне от 0 к F. Значения не являются чувствительными к регистру. Таким образом, цветовые коды '#FF8800', '#ff8800', '#F80', и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Пример: plot(G,'EdgeLabel',C,'EdgeLabelColor','m') создает график графика с пурпурными марками ребра.

Шрифт

свернуть все

Название шрифта меток узла, заданных как поддерживаемое название шрифта или 'FixedWidth'. Чтобы отобразить и распечатать правильно, необходимо выбрать шрифт, который поддерживает система. Шрифт по умолчанию зависит от конкретной операционной системы и локали. Например, Windows® и Linux®systems в английской локализации используют шрифт Helvetica по умолчанию.

Чтобы использовать шрифт фиксированной ширины, который выглядит хорошим в любой локали, задайте 'FixedWidth'.

Пример: 'Cambria'

Размер шрифта для меток узла, заданных как положительное число.

Толщина текста в метках узла, заданных как 'normal' или 'bold':

  • 'bold'Более толстые символьные основы, чем нормальный

  • 'normal' — Нормальный вес, как задано конкретным шрифтом

Не все шрифты имеют полужирное начертание шрифта.

Типы данных: cell | char | string

Символьный наклон текста в метках узла, заданных как 'normal' или 'italic':

  • 'italic'Наклонные символы

  • 'normal' — Никакой символьный наклон

Не все шрифты имеют оба стиля шрифта.

Типы данных: cell | char | string

Название шрифта меток ребра, заданных как поддерживаемое название шрифта или 'FixedWidth'. Чтобы отобразить и распечатать правильно, необходимо выбрать шрифт, который поддерживает система. Шрифт по умолчанию зависит от конкретной операционной системы и локали. Например, Windows и Linuxsystems в английской локализации используют шрифт Helvetica по умолчанию.

Чтобы использовать шрифт фиксированной ширины, который выглядит хорошим в любой локали, задайте 'FixedWidth'.

Пример: 'Cambria'

Размер шрифта для меток ребра, заданных как положительное число.

Толщина текста в метках ребра, заданных как 'normal' или 'bold':

  • 'bold'Более толстые символьные основы, чем нормальный

  • 'normal' — Нормальный вес, как задано конкретным шрифтом

Не все шрифты имеют полужирное начертание шрифта.

Типы данных: cell | char | string

Символьный наклон текста в метках ребра, заданных как 'normal' или 'italic':

  • 'italic'Наклонные символы

  • 'normal' — Никакой символьный наклон

Не все шрифты имеют оба стиля шрифта.

Типы данных: cell | char | string

Введенный в R2015b