使用MATLAB中的plot函数绘制图形时,可能会需要对绘制的多个图形添加图例,有时候绘制的曲线比较多,且想要添加的图例名有一定的规律,可以使用下面的方法进行添加。

clc,clear
n = 5;
% 绘制曲线
for i = 1:n
    plot(1:5,rand(1,5))
    hold on
% 添加图例
for i = 1:n
    leg_str{i} = ['line',num2str(i)];  
legend(leg_str)

可以将代码中的’line’字符串和num2str(i)中的i改成需要的值,注意循环的次数要是曲线的个数。

LEGNUM 图例使用数字数组的当前图形。 LEGNUM(X) 使用 X 中数字的字符串表示向当前图形添加图例。如果 X 是二维或多维数组,它将被展平并包括所有元素。 LEGNUM(X, P) 相同,但使用精度 P,其中 P 是整数。 LEGNUM(X, P, S) 与上述相同,但每个图例标签都包含一个前缀字符串。 例子>legnum(logspace(-5,-4,7), 6); 添加具有对数间隔数字标签的图例,具有 6 位有效数字精度 >legnum(logspace(-5,-4,7), 6, 'x = '); 相同,但标签的形式为“x = 1e-5”等。 另见 NUM2CELLSTR NUM2CELLSTR 将浮点数数组转换为字符串元胞数组。 NUM2CELLSTR(X) 将数组 X 转换为字符串元胞数组。 如果 X 是二维或多维数组,它将被展平(仍将包含所有元素)。 LEGENDTITLE 在图例轴内添加标题。 LEGENDTITLE(LEGH,TITLESTR) 将标题 TITLESTR 添加图例 LEGH LEGENDTITLE(TITLESTR) 将标题添加到当前轴中的当前图例LEGENDTITLE(...,Param,Val) 设置文本对象的指定属性。 H = LEGENDTITLE(...) 返回用于创建标题字符串的文本对象的句柄。 默认情况下,图例标题使用图例相同的字体,但字体粗体。 情节(randint(10,5)) legh = legend('随机 1','随机 2','随机 3','随机 4','随机 5'); Legendtitle(legh,'随机数据') 问题一:在一个for循环中绘制图形,将图形保存在同一个figure中,根据需要改变循环次数,导致无法确定标签个数。解决方法:在for循环中,将所需的标签内容存在一个cell类型的变量legend_str中,然后在for循环结束后使用语句legend(legend_str)。figure for i = 1:15 plot(flavorType(i,:)) hold on 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1,...) plot((0:0.2:8),besselh(ii,1,(0:0.2:8)),'Color', c(ii,:));% 添加颜色 hold on; s(ii)=ii; %图例矩阵命名 leg_str{ii}=num2str(s(ii)); %添加图例 legend(leg_str) file = 'D:\a.xlsx'; data=xlsread(file,'sg—sort'); SS = data(1,2:end); %待会图例需要的内容,这里我的是COD溶液浓度 data = data(2:end,:); [row,col] = size(data); band...