Adding multiple labels to a graph

30 views (last 30 days)
Anna Schloti
Anna Schloti on 5 Dec 2022
Commented: Voss on 12 Dec 2022
I have the following graph:
s = [1 2 3 4 6 7 8 10];
t = [3 3 4 5 7 5 9 11];
G = digraph(s,t);
h = plot(G);
and want to add the following labels to the nodes
schedule = [0 0 1 2 3 1 2 2 3 2 3];
I am struggling to manage this with my basic Matlab knowledge. I want to display the node numbers (here: [1:1:11]) and the corresponding values from the schedule array.

Accepted Answer

Voss
Voss on 6 Dec 2022
s = [1 2 3 4 6 7 8 10];
t = [3 3 4 5 7 5 9 11];
G = digraph(s,t);
h = plot(G);
% schedule = [0 0 1 2 3 1 2 2 3 2 3];
yd = get(h,'YData');
schedule = max(yd)-min(yd)-yd+1
schedule = 1×11
0 0 1 2 3 1 2 2 3 2 3
text(get(h,'XData')-0.1,yd,string(schedule), ...
'HorizontalAlignment','right', ...
'EdgeColor','k', ...
'FontSize',8)
  4 Comments
Anna Schloti
Anna Schloti on 12 Dec 2022
Thank you so much! This is exactly what I wanted to do!

Sign in to comment.

More Answers (1)

Maik
Maik on 6 Dec 2022
% You can use nodenames propertiest of digraph. However the names must be unique
s = [1 2 3 4 6 7 8 10];
t = [3 3 4 5 7 5 9 11];
weights = ones(1,8);
names = {'A' 'B' 'C' 'D' 'E' 'F' 'G 4' 'H 5' '1' '2' '3'};
G = digraph(s,t,weights,names)
G =
digraph with properties: Edges: [8×2 table] Nodes: [11×1 table]
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: {'A' 'B' 'C' 'D' 'E' 'F' 'G 4' 'H 5' '1' '2' '3'} EdgeLabel: {} XData: [1 2 1.5000 1.5000 2 2.5000 2.5000 3.5000 3.5000 4.5000 4.5000] YData: [4 4 3 2 1 3 2 2 1 2 1] ZData: [0 0 0 0 0 0 0 0 0 0 0] Show all properties
  1 Comment
Anna Schloti
Anna Schloti on 6 Dec 2022
Thanks for the answer, Maik.
I think my problem was misunderstood. I want as a result a graph with several labels at the nodes, so something like here:
Thanks in advance!

Sign in to comment.

Categories

Find more on Labels and Annotations in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!