我需要阻止特定的绘图条目显示在Matlab绘图图例上.
样品:
% x and y are any plot data
for i=1:5
plot(x,y);
plot(x2,y2,'PleaseNoLegend!'); % I need to hide this from legend
end
legend('show');
Run Code Online (Sandbox Code Playgroud)
我可以在plot命令中设置任何标志,这样这个特定条目不会出现在图例中吗?
您可以通过将'HandleVisibility'属性设置为来实现'off'.请注意,这会将这些图的句柄隐藏到所有函数中,而不仅仅是legend.
例如,
hold on
for k = 1:3
x = 1:10;
y = rand(1,10);
x2 = x;
y2 = y + 2;
plot(x,y);
plot(x2,y2,'--','HandleVisibility','off'); % Hide from legend
end
legend('show')
Run Code Online (Sandbox Code Playgroud)
生成图表
您可以使用名为hasbehavior的半文档化函数,该函数允许您在发出 plot 命令后忽略图例中的单个图。
figure;
hold on;
for i=1:5
plot(x,y);
h = plot(x2,y2);
hasbehavior(h,'legend',false);
end
legend('show');
Run Code Online (Sandbox Code Playgroud)
它的半记录在案的事实表明,它可能打破早晚较新版本的MATLAB,所以请谨慎使用。对于某些应用程序,它可能仍然是一个方便的选择。
正如@stephematician 所指出的,这个 MATLAB 内置在 Octave 中也不可用,这可能是其他答案更可取的另一个原因。