如何在图例中跳过项目?
6,646次观看(过去30天)
显示旧注释
接受的答案
肯尼斯·伊顿
2022年1月10日
编辑:MathWorks支援小组
2022年1月10日
从R2021a开始,通过将对应的标签设置为空字符向量,可以将一个项从图例中删除。例如,画出三条线。然后调用图例函数并将第二个图例标签指定为空字符向量。对应的行在图例中省略了。
情节(兰德(3));legend('Line 1','' Line 3')
注意,当您只指定标签时,而当您指定要包含在图例中的一组对象时,此策略是有效的。
对于以前的版本,您可以指定想要包含的对象作为“legend”函数的第一个输入参数。
例如,绘制三行并返回“Line”对象作为数组“p”。通过指定" p(1) "和" p(3) "作为" legend "的第一个输入参数,只包括图例中的第一行和第三行。
P = plot(rand(3));\n legend([p(1) p(3)],'plot 1','plot 3')
或者,你可以为你不想包含在图例中的对象设置“IconDisplayStyle”为“off”。例如,排除第二个“Line”对象“p(2)”。
P = plot(rand(3));\ n组(get (get (p(2),“注释”),“LegendInformation”),“IconDisplayStyle”,“关闭”);\n传说('情节1','情节3')
更多答案(11)
马特·洛沃
2021年11月1日
编辑:马特·洛沃
2021年11月30日
一个很好的方法就是去做上面提到的
https://stackoverflow.com/questions/13685967/how-to-show-legend-for-only-a-specific-subset-of-curves-in-the-plotting。
本质上,在绘图时将'HandleVisibility'属性设置为'off',如下所示:
情节(x, y,“HandleVisibility”,“关闭”)
这涉及到以其他方式与句柄进行交互,但如果你不打算使用句柄,这是一个很好的动态方式,可以在你的图例中不包含某些情节。当你迭代绘图,不想存储句柄,然后硬编码图例来适应你的精确绘图时,它尤其有效。
Dilshad Raihan
2015年10月26日
编辑:Dilshad Raihan
2015年10月26日
你可以先按顺序绘制曲线,这样你不想在图例中显示的线就会在最后出现。也就是说,假设你有N条线要绘制,但你不想在图例中显示其中的m条。然后先绘制所需的N-m条线,然后绘制剩余的m条线。之后,打开图例,单击图例,将显示“图例属性编辑器”。转到“更多属性”选项。你可以看到一个名为“String”的条目被指定为“1xN cell array”。点击单元格阵列图标,设置大小为“1xN-m”。现在,只有前N-m条曲线将显示在图例中。
Diaa
2020年11月17日
编辑:Diaa
2020年11月17日
您可以通过以下方法简单地删除最后一个不需要的条目:
假设你在这条线之前绘制了一些曲线,所有的曲线都希望在图例中显示出来。
图例(“显示”);
情节(x, y)你不需要传说中的这个情节。
hleg.String(end) = [];删除最后一个图例的最后一个图例条目
继续绘图,同时复制和粘贴前一行之后,任何你不需要在图例。
1评论
阿米尔Semnani
2021年6月9日
谢谢。这为我工作(MATLAB 2017b),它非常简单。让我们假设我们有8个数据集,我们想要绘制所有的数据集,但只想看到偶数数据集的图例。
x = 1 (100 1) * (1:8);情节(x); ylim ([0 9]);Hleg = legend ('show');hleg.String (1:2) = [];
路加福音马斯登
2017年2月2日
我试图用这行代码做类似的事情:
leg = legend([p4 RETU_Average activity1 Vulcanian1],“倾斜”,“RETU平均振幅”,“活动”,“火山的“爆炸”,“位置”,“东北”);
我得到这个错误:
错误使用matlab.graphics.chart.primitive.Line / horzcat
不能将双值23转换为句柄
错误在p1_zoom_plot(第93行)中
leg = legend([p4 RETU_Average, activity1 Vulcanian1],“倾斜”,“RETU平均振幅”,“活动”,“火山的“爆炸”,“位置”,“东北”);
胡安·卡洛斯·德卢纳
2020年4月6日
在“情节浏览器”中选择行并键入
集(get (get (gco,“注释”),“LegendInformation”),“IconDisplayStyle”,“关闭”)