legend dynamically updated

조회 수: 14 (최근 30일)
Chiara Modenese
Chiara Modenese 2011년 3월 21일
댓글: Moritz Stich 2022년 3월 31일
Hi, my task would be to have a legend which is update dynamically as I loop over some data extracted from different files and I add them to a same plot, for instance. To put it better, I would like to "append" a label to my legend every time I update my plot. Would you know how to do it?
Chiara
  댓글 수: 4
Matthew
Matthew 2018년 9월 25일
Those were the days.
Moritz Stich
Moritz Stich 2022년 3월 31일
Jon Bailey you are a dynamic legend. Thanks

댓글을 달려면 로그인하십시오.

채택된 답변

Paulo Silva
Paulo Silva 2011년 3월 21일
clf
clc
hold all
x=0:0.01:2*pi;
b=zeros(5);
for a=1:5
b(a)=plot(x,sin(a*x));
legend(b(1:a))
pause(1) %just to see it being draw
end
Alternative with choosen names for each plot
clf
clc
hold all
x=0:0.01:2*pi;
b=zeros(5);
c={'one','two','three','four','five'};
for a=1:5
b(a)=plot(x,sin(a*x));
legend(b(1:a),c(1:a))
pause(1)
end
  댓글 수: 1
Chiara Modenese
Chiara Modenese 2011년 3월 21일
Thanks for a very helpful community. Question is answered.
Cheers. Chiara

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Matt Fig
Matt Fig 2011년 3월 21일
How are you updating the plot? In a loop?
  댓글 수: 1
rodolfo reyesbaez
rodolfo reyesbaez 2019년 5월 21일
I added a hold on before ending the loop

댓글을 달려면 로그인하십시오.


Chiara Modenese
Chiara Modenese 2011년 3월 21일
Yes, in a simple loop. Data come from different structures, but this is not so important. Basically, I want to avoid this:
legend(ss(1).name,ss(2).name,ss(3).name);
where ss(i) are structures. Every time I run my code, I can chose the number of structures to create, so I do not want to modify my legend as a function of this but, instead, do it automatically (so if I have 5 structures, I expect 5 corresponding labels in my legend, no need to modify the code by hand).
Thanks, Chiara

카테고리

Help CenterFile Exchange에서 Legend에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by