matlab:在不从绘图浏览器中删除的情况下抑制图例条目

matlab : suppress legend entry without removing from Plot Browser

可以通过执行 h.HandleVisibility='off'h.Annotation.LegendInformation.IconDisplayStyle='off' 来抑制线条对象 h 的图例条目。但是,这两个操作也会阻止曲线出现在 Matlab 的绘图浏览器用户界面中,因此无法交互切换曲线的显示。

有没有什么方法可以在不删除在绘图浏览器用户界面中切换该曲线显示的功能的情况下,抑制给定曲线的图例条目?

MATLAB 的 legend 函数接受一个可选参数,列出要包含在图例中的句柄:

figure, hold on
h1 = plot(1,1,'ro');
h2 = plot(1,2,'gx');
h3 = plot(2,1,'m*');
legend([h1,h3]);  % don't make a legend for h2.

您也可以关闭句柄可见性。这比必须将每个图都设置为 h1 = ...

要容易得多

示例:

x1 = randperm(10);
y = randperm(10);
x2 = randperm(10);

plot(x1, y, '-', 'Color', 'black', 'HandleVisibility', 'off')
hold on
plot(x2, y, '-', 'Color', 'green', 'DisplayName', 'Put This In Legend')
lgd = legend;
set(lgd, 'Location', 'best')