Holding legend with multiple plots

3 views (last 30 days)
ma sd
ma sd on 14 Jun 2020
Commented: Walter Roberson on 22 Jun 2020
I am using app designer and I have a plot that takes input from the interface then plots it. each time I am plotting, I'm holding the uiaxis on to keep previous plots. however I am not able to get the legend to update and maintain previous components. is it possible to do it?
  2 Comments
Ajay Kumar
Ajay Kumar on 14 Jun 2020
why dont you write legend command after plotting all the plots?
ma sd
ma sd on 16 Jun 2020
it's not predetermined I am exploring multiple variations of weights for my model then plotting them in the app

Sign in to comment.

Answers (2)

Suhas Maddi
Suhas Maddi on 18 Jun 2020
Hii,
I think You are trying to store the legend values for each iteration and add new values to that legend.
There are two ways to do so :
  1. Use a cell array of character vectors or string array or categorical array and append your new legend values to this cell array and plot the legend for every iteration.
  2. You can use legappend function as mentioned here: https://blogs.mathworks.com/pick/2014/07/25/append-entries-to-a-legend/
Hope this helps you.
  2 Comments
ma sd
ma sd on 21 Jun 2020
how would you go about creating the array and appending it to include new plots?
legappend didn't work for me as matlab didn't recognize it
Walter Roberson
Walter Roberson on 22 Jun 2020
You would need to install legappend from https://www.mathworks.com/matlabcentral/fileexchange/47228-legappend or from the Add-On Explorer.

Sign in to comment.


Suhas Maddi
Suhas Maddi on 22 Jun 2020
Hii ma sd,You can do something like this :
>>X=1:10;
>>Y=5:5:50;
>>Z=10:10:100;
>>labels={};
>>plot(X,Y);
>>labels{end+1}='label1';
>>legend(labels);
>>hold on
>>plot(X,Z);
>>labels{end+1}='label2';
>>legend(labels);
>>hold off
I am attaching the results too.
I hope this helps you.

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!