Add legend to for loop
조회 수: 14 (최근 30일)
이전 댓글 표시
I am trying to add legend to for loop and I need my legend to have variables used to plot graphs.
fig1 = figure()
ax1 =axes('Parent',fig1)
for C = 1:36
for I = [1:5]
%Cl Vs Alpha
index = 1;
XVAR = 'Alpha';
YVAR='CL';
MACH = 0.27;
ALTITUDE = 0;
legend(sprintf('TEST_AERO%d_%d',I , C))
hold on
TEST_AERO_FINAL.(sprintf('TEST_AERO%d_%d',I , C)).DES_SPACE{index}.plot(XVAR,YVAR,MACH,ALTITUDE,ax1)
end
end
댓글 수: 0
채택된 답변
DGM
2021년 4월 22일
편집: DGM
2021년 4월 22일
Generally, it's best if you specify the plot object handle when you call legend(). Since all of your plotting code is missing, consider the simplified example:
numberofplots=3;
h=zeros(numberofplots,1); % preallocate handles vector
legendstrings=cell(numberofplots,1); % preallocate legend strings
for n=1:numberofplots
x=rand(10,1); % garbage example data
y=rand(10,1);
h(n)=plot(x,y); hold on; % store this plot handle
legendstrings{n}=sprintf('X1 = %f',x(1)); % store this legend string
end
% the call to legend() doesn't need to be in the loop
legend(h,legendstrings,'location','northwest');
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!