在这里,我有一个for循环来绘制矩阵的内容。
根据“类型”值,确定绘图对象(ks,bO,rX)
for k = 1:length(data1)
if(type(k)==1)
h=plot(data1(k,1),data1(k,2),'ks');set(h,'linewidth',2);hold on;
elseif(type(k) ==0)
h=plot(data1(k,1),data1(k,2),'bO');set(h,'linewidth',2); hold on;
else
h=plot(data1(k,1),data1(k,2),'rX');set(h,'linewidth',2); hold on;
end
end
我有点困惑,无法找到在图例中添加图例的方式,它显示了我对每个对象(ks,bO,rX)的解释。
默认情况下,MATLAB不会将此循环的输出显示为三个图,而是多个单独的绘制点。即使某些点是使用相同的设置绘制的,它也不会自动将它们识别为同一系列的一部分。如果给它三个图例条目,它将把它们分配给绘制的前三个点。
解决此问题的最简单方法是更改绘制和使用逻辑索引的方式,而不是循环:
h=plot(data1(type==1,1),data1(type==1,2),'ks'); set(h,'linewidth',2);
hold on;
h=plot(data1(type==0,1),data1(type==0,2),'bO'); set(h,'linewidth',2);
h=plot(data1(type==-1,1),data1(type==-1,2),'rX'); set(h,'linewidth',2);
现在我们只有三个图,因此给出三个图legend
应该使我们能够正确地匹配这些图(按绘制顺序)和标签之间的匹配:
legend({'Type 1'; 'Type 0' ; 'Type -1'})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句