MATLAB Answers

Remove specific edgelabels in the plot of a graph

3 views (last 30 days)
I would like to remove specific edgelabels in the plot of a graph. In particular, edgelabels that do not satisfy some conditions.
For example, in my graph plot function I have:
edgename=(1:7)';
active=[1 2];
passive=[4 5];
labeledge(p,edgename(~active|~passive),'');
p is the plot.
However, it doesn't work.
How can I do this?

Accepted Answer

Aghamarsh Varanasi
Aghamarsh Varanasi on 17 Mar 2021
Hi,
You can use a index array to specify which graph edges to have the edgeLabels. For example,
s = [1 1 1 2 2 3 4];
t = [2 3 4 2 5 6 7];
G = graph(s,t);
h = plot(G);
% edges that are not labled
active = [1,2];
passive = [4,5];
edgesNotLabled = [active passive];
% create index array
idx = 1:numedges(G);
idx(edgesNotLabled) = [];
edgename=(1:7)';
% label remaining edges in idx
labeledge(h, idx, edgename(idx));
  2 Comments
Aghamarsh Varanasi
Aghamarsh Varanasi on 17 Mar 2021
You could instead use 'edgesNotLabled' variable in the above code for labeling active and passive elements only.
labeledge(h, edgesNotLabled, edgename(edgesNotLabled));

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!