问题一:在一个for循环中绘制图形,将图形保存在同一个figure中,根据需要改变循环次数,导致无法确定标签个数。
解决方法:
在for循环中,将所需的标签内容存在一个cell类型的变量legend_str中,然后在for循环结束后使用语句legend(legend_str)。
figure
for i = 1:15
plot(flavorType(i,:))
hold on
legend_str{i} = ['flavor' num2str(i)];
end
legend(legend_str)

问题二:将图例横排或者任意行列排列。
解决方法:借助他人编写的函数模块columnlegend。
下载地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/27389-simonhenin-columnlegend
若无法下载可选择:https://download.csdn.net/download/ckzhb/10388664
使用方法示例:定义字符串+函数
str = [];
str = [str,{'A'},{'B'},{'C'},{'D'},{'E'},{'F'},{'G'}];
columnlegend(7,str,'North')
结果:图例按一行七列显示。