highlight

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

Описание

пример

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

пример

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

highlight(H,s,t) подсвечивает все ребра между заданными парами исходного и целевого узлов в s и t путем увеличения их ребра ширин линии. Если индексы ребер доступны вместо пар (ов, 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')

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

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])

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

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

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

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

Создайте и постройте график. Верните указатель на 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)

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

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)

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

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

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

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

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

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

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

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

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

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

Найдите соседи узла 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')

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

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

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

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

Вычислите максимальный поток между узлами 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')

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

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

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

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);

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

Найдите кратчайший путь между узлом 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)

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

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

свернуть все

Входной график, заданный как 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' и один из стилей линии, перечисленных в этой таблице.

ПерсонажиСтиль линииРезультирующая линия
'-'Сплошная линия

'--'Штриховая линия

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

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

'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

Метки узлов и ребер

свернуть все

Цвет метки узла, заданный как триплет 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® системы в английской локализации по умолчанию используют шрифт Helvetica.

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

Пример: 'Cambria'

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

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

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

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

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

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

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

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

  • 'normal' - Нет наклона символов

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

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

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

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

Пример: 'Cambria'

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

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

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

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

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

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

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

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

  • 'normal' - Нет наклона символов

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

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

Введенный в R2015b