我正在MATLAB中读表如下:
R = readtable('Recalls_All.csv','Delimiter',',','ReadVariableNames',false,...
'ReadRowNames',false);
R.Properties.VariableNames = {'Features','R1','R5','R10','R20'};
此矩阵的第一列是' string'对应于不同算法的数据类型和其他4列是数字。我怎么能不使用循环,将行绘制为列的函数。
显然,使用readtable()
制作图片不是一项艰巨的任务。但是由于存在180行,我希望自动为每个绘图(算法)创建legend()
。
很赞赏很酷的想法。
答案 0 :(得分:2)
这是一个选择:
% some arbitrary data:
R = table({'algorithm1' 'algorithm2' 'algorithm3'}.',randi(100,3,1),...
randi(100,3,1),randi(100,3,1),randi(100,3,1),...
'VariableNames',{'Features','R1','R5','R10','R20'});
ax = axes; % create axes
plot(ax,table2array(R(:,2:end)).'); % plot data
ax.XTick = 1:width(R); % limit X-axis ticks no. to columns
ax.XTickLabel = R.Properties.VariableNames(2:end); % get columns names
legend(table2cell(R(:,1))); % get algorithm names
结果:
当然,您可以根据需要调整情节(线条,标记,限制等)。
答案 1 :(得分:1)