从图例中隐藏线条

3
我需要隐藏图例中的4条线。我正在使用shadedErrorBar,所以每个组有3条线(平均值、标准差上限和下限),如果我使用经典代码legend('line1','line2,'...),那么就会有3个标签。我希望图例中只显示每个组的平均值。我有2组。
shadedErrorBar(x,y1,e1);
shadedErrorBar(x,y2,e2);

y1y2是我的平均值,而e1e2是标准偏差。 我认为我应该使用IconDisplayStyle,但我不明白如何使用。我阅读了这篇文章 http://it.mathworks.com/help/matlab/creating_plots/controlling-legends.html,但就像隐藏一个plot来隐藏一条线一样。使用shadedErrorBar后,每个组的图表上有3个plotenter image description here


你能提供一个最小化的工作示例吗? - edwinksl
抱歉,我忘记了每次都要加截图。 - Shika93
1个回答

2
当您创建图例时,只能指定要为其创建图例条目的绘图对象shadedErrorBars 的输出是一个包含所有绘图对象的结构体,因此您可以使用这些对象来获取补丁对象,并仅为这些对象创建图例条目。
h1 = shadedErrorBar(linspace(1,10), linspace(1,10), linspace(0,1));
hold on
h2 = shadedErrorBar(linspace(1,10), linspace(1,20), linspace(1,0));

legend([h1.patch, h2.patch], {'Item1', 'Item2'})

enter image description here


如果我想在图例上显示线条而不是两个彩色框,该怎么办? - Shika93
@Shika93 看看 h1h2 的其他字段,并以类似的方式使用适当的字段。 - Suever
legend([h1.lin, h2.lin], {'Item1', 'Item2'})的翻译如下: 图例([h1.lin, h2.lin], {'项目1', '项目2'}) - Shika93
1
@Shika93 这对你们输出的值是什么?对我来说,看起来应该是 [h1.mainLine,h2.mainLine] - Suever

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接