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