подсветка

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

Синтаксис

highlight(H,nodeIDs)
highlight(H,G)
highlight(H,s,t)
highlight(___,Name,Value)

Описание

пример

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"

StringArray

Пример: ["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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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' or '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'

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

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

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

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

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

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

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

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

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

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

Пример: 'Cambria'

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

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

  • 'bold' — более тонкие контуры символов, чем 'normal'

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

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

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

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

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

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

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

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

Введенный в R2015b