이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
그래프 노드 이름, 간선 가중치, 기타 특성(Attribute) 추가하기
R2026a이 예제에서는 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: [5×1 table]
Nodes: [4×0 table]
노드 이름 추가하기
G.Nodes 테이블에 변수 Name을 추가하여 그래프에 노드 이름을 추가합니다. Name 변수는 N×1 크기의 '문자형 벡터로 구성된 셀형 배열' 또는 'string형 배열'로 지정해야 합니다(여기서 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 = 2×1 cell
{'First' }
{'Fourth'}
간선 가중치 추가하기
변수 Weight를 G.Edges 테이블에 추가하여 간선 가중치를 그래프에 추가합니다. Weight 변수는 M×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
사용자 지정 특성(Attribute) 추가하기
원칙적으로, 사용자는 그래프 노드나 그래프 간선의 특성을 정의하는 변수를 G.Nodes와 G.Edges에 추가할 수 있습니다. subgraph와 reordernodes 같은 함수는 그래프 특성을 유지하므로 사용자 지정 특성을 추가하는 것이 유용할 수 있습니다.
예를 들어, Power라는 변수를 G.Edges에 추가하여 각 간선이 'on'이거나 'off'인지를 나타냅니다.
G.Edges.Power = {'on' 'on' 'on' 'off' 'off'}';
G.Edgesans=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의 변수를 사용하여 그래프 노드와 그래프 간선에 레이블을 지정할 수 있습니다. 이러한 변수는 이미 올바른 요소 개수를 가지도록 보장되므로 이 방법을 사용하는 것이 간편합니다.
그래프를 플로팅하고 G.Edges의 Power 변수를 사용하여 간선에 레이블을 지정합니다. G.Nodes의 Size 변수를 사용하여 노드에 레이블을 지정합니다.
p = plot(G,'EdgeLabel',G.Edges.Power,'NodeLabel',G.Nodes.Size)

p =
GraphPlot with properties:
NodeColor: [0.0660 0.4430 0.7450]
MarkerSize: 4
Marker: 'o'
EdgeColor: [0.0660 0.4430 0.7450]
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