plot legend that depicts different markes of nodes

I want to have a legend that label the markers present in my graph plot.
G = graph([1 1], [2 3]);
plot(G,'marker',[{'o'},{'x'},{'+'}])
Legend should show:
o one
x two
x three

 Accepted Answer

That's why if you directly use legend after creating the graph, you will get the graph as the legend identifier.
There is a work around to achieve what you want to do -
str=[{'o'},{'x'},{'+'}];
clr='b';
figure
hold on
for k=1:numel(str)
plot(NaN,NaN,[clr str{k}])
end
G = graph([1 1], [2 3]);
plot(G,'NodeColor',clr,'EdgeColor',clr,'Marker',str,'MarkerSize',6)
legend({'one', 'two', 'three'})

1 Comment

I would just add:
plot(NaN,NaN,[clr str{k}],'MarkerFaceColor',clr)
to fill the marker.

Sign in to comment.

More Answers (0)

Tags

Asked:

on 23 Mar 2023

Commented:

on 23 Mar 2023

Community Treasure Hunt

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

Start Hunting!