【发布时间】:2021-11-21 21:23:10
【问题描述】:
我有一个看起来有点像这样的 for 循环:
RowToPlot =2;
Num=2;
SwatchToPlots=[2 3];
DataToGraph=rand(168,97);
[RowsData,ColsData]=size(DataToGraph);
x=1:RowsData;
figure
for idx=1:Num
SwatchToPlot=SwatchToPlots(1,idx);
if RowToPlot==1
if SwatchToPlot==1
plot(x,DataToGraph(:,22:25));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==2
plot(x,DataToGraph(:,46:49));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==3
plot(x,DataToGraph(:,70:73));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==4
plot(x,DataToGraph(:,94:97));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
end
elseif RowToPlot==2
if SwatchToPlot==1
plot(x,DataToGraph(:,18:21));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==2
plot(x,DataToGraph(:,42:45));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==3
plot(x,DataToGraph(:,66:69));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
elseif SwatchToPlot==4
plot(x,DataToGraph(:,90:93));hold on;
legend('ex1', 'ex2', 'ex3', 'ex4');
end
end
end
每条绘图线在 y 轴上绘制 4 条线,根据 Num 中的值,for 循环可以重复并且可以绘制更多线。如果 for 循环只发生一次,那么我可以使用 legend() 函数轻松添加图例。但是,如果 for 循环不止一次发生,则新图例不会附加到现有图例。如何将图例附加到已经存在的图例中,而不是仅仅替换它?
*注意:我已经阅读了类似的问题,但由于我正在使用单个 plot() 函数绘制四条 y 线,因此仍然无法使其正常工作。
【问题讨论】:
-
“我已经阅读了类似的问题,但由于我正在使用单个 plot() 函数绘制四条 y 线,因此我仍然无法使其工作。”请展示您尝试过的内容,这会让其他人更容易帮助您。