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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Adam
Adam am 13 Jul. 2017
Bearbeitet: Adam am 13 Jul. 2017

2 Stimmen

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 Kommentare

RuiQi
RuiQi am 13 Jul. 2017
You are right. It is easier to just add them all at the end. Still, thanks for the solution.
Gopal New
Gopal New am 30 Nov. 2020
Bearbeitet: Gopal New am 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.
ROBIN KUMAR
ROBIN KUMAR am 18 Feb. 2022
This doesn't work at all. The same problem I have been facing with R2021a version. Please help me execute the same..

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

ROBIN KUMAR
ROBIN KUMAR am 18 Feb. 2022

0 Stimmen

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

Tags

Gefragt:

am 13 Jul. 2017

Kommentiert:

am 18 Feb. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by