MATLAB 图例列出了绘图中的所有内容,包括您在绘图上放置的指南。
绕过这个问题的软糖就是要做的
*Plot
*Add legend
*Add guidelines
然而,MATLAB 将最新的行放在前面,这意味着指南将位于显示的数据之上;丑陋且分散注意力。
每当你构建一个复杂的情节时,都会出现类似的问题,legend
吓坏了并抓住了一切,并且绘图顺序的解决方法可能很丑陋
示例代码:
%**** Optional guidelines
figure(1)
plot([2 2],[0,1],'k--'); hold on
%**** DATA
N = 4;
y=rand(5,N);
x=1:1:5;
for plotLoop=1:N;
%* Plot
figure(1)
plot(x,y(plotLoop,:));
hold on
end
%*****LEGEND
hLegend = legend(LegTxt,...
'interpreter','latex',...
'location','eastoutside')
(移动代码块顺序以复制上述情况)
如何合理解决这个问题?
如果您希望某个图形对象不生成图例(即使您再次关闭和打开图例,这也会起作用),您可以修改LegendInformation
:
%# plot something that shouldn't show up as legend
handleWithoutLegend = plot(something);
%# modify the LegendInformation of the Annotation-Property of the graphical object
set(get(get(handleWithoutLegend,'Annotation'),'LegendInformation'),...
'IconDisplayStyle','off');
%# toggle legend on and off at will, and never see the something-object appear
如果您尝试关闭句柄数组上的图例,最好的方法是循环遍历它们,并使用无法生成图例的图形对象的 try 包装器:
for h = listOfHandles(:)'
try
set(get(get(h,'Annotation'),'LegendInformation'),...
'IconDisplayStyle','off');
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)