Добавление Графика имен узлов, весов кромок и других атрибутов

В этом примере показано, как добавить атрибуты к узлам и ребрам в графиках, созданных с помощью graph и digraph. Вы можете задать имена узлов или веса кромок, когда вы первоначально вызываете graph или digraph для создания графика. Однако в этом примере показано, как добавить атрибуты к графику после его создания.

Создайте график

Создайте ориентированный граф. Соответствующие элементы в s и t задайте исходный и целевой узлы каждого ребра в графике.

s = [1 1 2 2 3];
t = [2 4 3 4 4];
G = digraph(s,t)
G = 
  digraph with properties:

    Edges: [5x1 table]
    Nodes: [4x0 table]

Добавление имен узлов

Добавьте имена узлов к графику путем добавления переменной, Name, к G.Nodes таблица. The Name переменная должна быть задана как N-by- 1 массив ячеек из векторов символов или строковых массивов, где N = numnodes(G). Важно использовать Name переменная при добавлении имен узлов, так как это имя переменной обрабатывается специально некоторыми графиками.

G.Nodes.Name = {'First' 'Second' 'Third' 'Fourth'}';

Просмотр новой Nodes таблица.

G.Nodes
ans=4×1 table
       Name   
    __________

    {'First' }
    {'Second'}
    {'Third' }
    {'Fourth'}

Используйте индексацию таблиц для просмотра имен узлов 1 и 4.

G.Nodes.Name([1 4])
ans = 2x1 cell
    {'First' }
    {'Fourth'}

Добавление весов кромок

Добавьте веса ребер к графику путем добавления переменной, Weight, к G.Edges таблица. The Weight переменная должна быть M-by-1 числовой вектор, где M = numedges(G). Важно использовать Weight переменная при добавлении весов ребер, так как это имя переменной обрабатывается специально некоторыми графиками.

G.Edges.Weight = [10 20 30 40 50]';

Просмотр новой Edges таблица.

G.Edges
ans=5×2 table
            EndNodes            Weight
    ________________________    ______

    {'First' }    {'Second'}      10  
    {'First' }    {'Fourth'}      20  
    {'Second'}    {'Third' }      30  
    {'Second'}    {'Fourth'}      40  
    {'Third' }    {'Fourth'}      50  

Используйте индексацию таблицы, чтобы просмотреть первую и третью строки G.Edges.

G.Edges([1 3],:)
ans=2×2 table
            EndNodes            Weight
    ________________________    ______

    {'First' }    {'Second'}      10  
    {'Second'}    {'Third' }      30  

Добавление пользовательских атрибутов

В принципе можно добавить любую переменную в G.Nodes и G.Edges который задает атрибут узлов или ребер графика. Добавление пользовательских атрибутов может быть полезным, так как такие функции, как subgraph и reordernodes сохраните атрибуты графика.

Например, добавьте переменную с именем Power на G.Edges чтобы указать, является ли каждое ребро 'on' или 'off'.

G.Edges.Power = {'on' 'on' 'on' 'off' 'off'}';
G.Edges
ans=5×3 table
            EndNodes            Weight     Power 
    ________________________    ______    _______

    {'First' }    {'Second'}      10      {'on' }
    {'First' }    {'Fourth'}      20      {'on' }
    {'Second'}    {'Third' }      30      {'on' }
    {'Second'}    {'Fourth'}      40      {'off'}
    {'Third' }    {'Fourth'}      50      {'off'}

Добавьте переменную с именем Size на G.Nodes для указания физического размера каждого узла.

G.Nodes.Size = [10 20 10 30]';
G.Nodes
ans=4×2 table
       Name       Size
    __________    ____

    {'First' }     10 
    {'Second'}     20 
    {'Third' }     10 
    {'Fourth'}     30 

Редактирование таблиц с помощью редактора переменных

Начиная с Nodes и Edges являются обеими таблицами, для интерактивного просмотра или редактирования таблиц можно использовать редактор Переменных. Для получения дополнительной информации см. раздел «Создание и редактирование переменных».

Маркируйте узлы и ребра графического графика

Когда вы строите график, можно использовать переменные в G.Nodes и G.Edges чтобы пометить узлы и ребра графика. Такая практика удобна, так как эти переменные уже гарантированно имеют правильное количество элементов.

Постройте график и пометьте ребра с помощью Power переменная в G.Edges. Пометьте узлы, используя Size переменная в G.Nodes.

p = plot(G,'EdgeLabel',G.Edges.Power,'NodeLabel',G.Nodes.Size)

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

p = 
  GraphPlot with properties:

     NodeColor: [0 0.4470 0.7410]
    MarkerSize: 4
        Marker: 'o'
     EdgeColor: [0 0.4470 0.7410]
     LineWidth: 0.5000
     LineStyle: '-'
     NodeLabel: {'10'  '20'  '10'  '30'}
     EdgeLabel: {'on'  'on'  'on'  'off'  'off'}
         XData: [2 1.5000 1 2]
         YData: [4 3 2 1]
         ZData: [0 0 0 0]

  Show all properties

См. также

|

Похожие темы