Plot - add legend individually

How can I update the legend of each plot individually rather than at the end of the code ?
plot(x1, y1, '-vr', 'LineWidth', linewidth, 'MarkerSize', markersize);
legend('Algorithm 1');
plot(x2, y2, '-vr', 'LineWidth', linewidth, 'MarkerSize', markersize);
legend('Algorithm 2');
The code above overwrites the legend for Algorithm 1

1 Comment

The same problem I have been facing with R2021a version. Please help me execute the same..

Sign in to comment.

 Accepted Answer

Adam
Adam on 13 Jul 2017
Edited: Adam on 13 Jul 2017
If you are working with a fairly recent version of Matlab (> R2014b I think) then you can edit an existing legend if you keep the handle to it:
figure; hAxes = gca;
plot(hAxes, x1, y1, '-vr', 'LineWidth', linewidth, 'MarkerSize', markersize);
hLegend = legend( hAxes, 'stuff' );
hold( hAxes, 'on' )
plot(hAxes, x2, y2, '-vr', 'LineWidth', linewidth, 'MarkerSize', markersize);
hLegend.String{2} = 'other stuff';
It is more efficient to do all the plots first and then put the legend up for all of them though.

3 Comments

You are right. It is easier to just add them all at the end. Still, thanks for the solution.
Gopal New
Gopal New on 30 Nov 2020
Edited: Gopal New on 30 Nov 2020
Hi,
when i run the above code, i only get one legend. i'm trying to do something similar, but can't make it work. i'm using R2016.
This doesn't work at all. The same problem I have been facing with R2021a version. Please help me execute the same..

Sign in to comment.

More Answers (1)

ROBIN KUMAR
ROBIN KUMAR on 18 Feb 2022
The same problem I have been facing with R2021a version. Please help me execute the same..

Tags

Asked:

on 13 Jul 2017

Commented:

on 18 Feb 2022

Community Treasure Hunt

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

Start Hunting!