我正在创建一个程序,用户可以在其中选择多个文件来绘制和比较数据。该程序可以正确绘制数据,我遇到的问题在图例中。
我尝试发布图片,但我没有足够高的声誉。因此,我将尝试详细解释该图。绘制了两组点(两个不同大小的矩阵)。曲线由用户标记,在本例中它们是:“PS,Cs”和“PS,Po”。
该程序成功地用红色方块绘制了“PS,Cs”曲线,然后用蓝色圆圈绘制了“PS,Po”,但是图例继续显示两组点的红色方块。下面是执行绘图的代码中的循环。
fig = small_group_struct;
mystyles = {'bo','rs','go'};
mat_len = size(small_group_struct,2);
for q = 1:mat_len
plotstyle = mystyles{mod(q,mat_len)+1};
semilogy(1:size(small_group_struct(1).values),small_group_struct(q).values,plotstyle);
hold all;
[~,~,~,current_entries] = legend;
legend([current_entries {small_group_struct(q).name}]);
end
hold off;
%legend(small_group_struct.values,{small_group_struct.name});
我见过的其他线程建议将 plot 命令放入句柄中,但由于每组点都是不同大小的 nxm 矩阵,因此程序不喜欢这样。
此外,如开头所述,用户将选择文件的数量,虽然这通常是两个,但并非总是如此,以及为什么我试图在 for 循环中绘制它。
任何建议和意见将不胜感激。
编辑:我现在有足够高的声誉来发布图片,所以这是图表的截图