Get lineseries handle

I'm trying to use set to set the display name of each legend label.
If I have:
h=plot();
Then try to do:
set(h(1),'DisplayName','data label')
It's not working. Do I have to set the legend to be displayed first or does this automatically display it then change the label of each data series?

 Accepted Answer

Setting the DisplayName property does not automatically show the legend. You still need to explicitly show the legend:
h = plot( 1:5, rand(1,5), 6:10, rand(1,5) );
set(h(1), 'DisplayName', 'some data');
set(h(2), 'DisplayName', 'more data');
legend show

More Answers (1)

If you want to change the legend, get the handle of the legend, or simply run legend() again.
plot(magic(3));
legend({'a','b','c'});
h=legend({'1','2','3'});
set(h,'string',{'first','second','third'});

Tags

Community Treasure Hunt

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

Start Hunting!