如何在图例中跳过项目?

6,646次观看(过去30天)
亨利王
亨利王 2011年1月25日
评论道: 里克 2022年6月13日
我如何跳过传说中的项目?假设我有6个图,3个实际值和3条插值曲线。我只是想把实际值曲线标出来
传奇(“第一次”,“‘第二个’,”,“第三”)
这并不适用,因为插值曲线仍然显示。
13个评论
格雷格•维埃拉
格雷格•维埃拉 2021年9月4日
如何对多个地块进行此操作?例如,我绘制了1001个数据集,只希望图例显示前1000个图和最后一个图中的1个。我放置999 ' '占位符是不合理的。

登录发表评论。

接受的答案

肯尼斯·伊顿
肯尼斯·伊顿 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')
7评论
为副总经理
为副总经理 2021年12月23日
你能换个地方吗?
情节(兰德(3));
传奇(1号线的' '3号线的

登录发表评论。

更多答案(11)

沃尔特·罗伯森
沃尔特·罗伯森 2011年1月25日
编辑:里克 2022年4月5日
对于不希望使用图例的项目,可以将IconDisplayStyle设置为off。看到 这个文档
编辑的 @Rik (2022/04/05):
上面的链接对于R2012a的文档是有效的。R2022a中的等效页 建议采用不同的策略 (即只提供句柄 传说 对于您希望包含的对象)。在当前版本中,IconDisplayStyle被记录在图形原语的属性下。 对象 补丁对象 ).
来自特定版本的文档页面将保持在线5年。
6个评论
坦尼娅迈耶
坦尼娅迈耶 2022年4月5日
是-坏链接:(

登录发表评论。


马特·洛沃
马特·洛沃 2021年11月1日
编辑:马特·洛沃 2021年11月30日
本质上,在绘图时将'HandleVisibility'属性设置为'off',如下所示:
情节(x, y,“HandleVisibility”“关闭”
这涉及到以其他方式与句柄进行交互,但如果你不打算使用句柄,这是一个很好的动态方式,可以在你的图例中不包含某些情节。当你迭代绘图,不想存储句柄,然后硬编码图例来适应你的精确绘图时,它尤其有效。
3评论
塞巴斯蒂安·洛佩兹
塞巴斯蒂安·洛佩兹 2022年5月27日
真的有帮助。谢谢!

登录发表评论。


Junette新
Junette新 2019年3月21日
编辑:Junette新 2019年3月21日
我遇到了这个问题,我还没有看到这个建议的方法,但我通过改变我绘制的线的顺序来解决它,这影响了图例的显示(我使用MATLAB R2017b)。
假设你先画两条线,然后创建一个图例。然后画出第三条线。第三行将作为“data 1”添加到图例中。
而是画出3条线,然后在你的图例中,只标注前两行。第三行将从图例中省略。
希望这能有所帮助。
5个评论
加芙Belicova
加芙Belicova 2022年5月13日
两个都很有帮助,非常感谢!!

登录发表评论。


亚辛Zamani
亚辛Zamani 2019年9月25日
编辑:亚辛Zamani 2019年9月25日
例如,假设你想跳过图例中第一个情节的名称:
X = linspace(0,2 * pi);
% sin (x)
H = plot(x, sin(x));
下一行将跳过图例中前一个情节的名称。
h.Annotation.LegendInformation.IconDisplayStyle =“关闭”
% cos (x)
情节(x), cos (x));
%的传说
传奇(“因为”);
4评论
索汉姆Sinha
索汉姆Sinha 2022年5月11日
谢谢

登录发表评论。


鲍里斯·布拉格杰维克
另一种方法:阻止图例的更新
首先,绘制您想要标记的行。然后,指定图例并设置
传奇(...“自动更新”,“关闭”)
然后,绘制剩下的直线
3评论
里克
里克 2022年6月13日
评论发布作为旗帜由 法蒂玛u 'wais:
感兴趣

登录发表评论。


骑自行车的人
骑自行车的人 2011年1月25日
每条曲线都有一个句柄,可以从属性中获取。使用带有两个参数(句柄和传说)的图例形式,并且只使用您想要显示的曲线的句柄。

Dilshad Raihan
Dilshad Raihan 2015年10月26日
编辑:Dilshad Raihan 2015年10月26日
你可以先按顺序绘制曲线,这样你不想在图例中显示的线就会在最后出现。也就是说,假设你有N条线要绘制,但你不想在图例中显示其中的m条。然后先绘制所需的N-m条线,然后绘制剩余的m条线。之后,打开图例,单击图例,将显示“图例属性编辑器”。转到“更多属性”选项。你可以看到一个名为“String”的条目被指定为“1xN cell array”。点击单元格阵列图标,设置大小为“1xN-m”。现在,只有前N-m条曲线将显示在图例中。
1评论
哈瑞Pulluri
哈瑞Pulluri 2016年9月26日
先生,谢谢你给出的解决方案

登录发表评论。


Diaa
Diaa 2020年11月17日
编辑:Diaa 2020年11月17日
您可以通过以下方法简单地删除最后一个不需要的条目:
假设你在这条线之前绘制了一些曲线,所有的曲线都希望在图例中显示出来。
图例(“显示”);
情节(x, y)你不需要传说中的这个情节。
hleg.String(end) = [];删除最后一个图例的最后一个图例条目
继续绘图,同时复制和粘贴前一行之后,任何你不需要在图例。
1评论
阿米尔Semnani
阿米尔Semnani 2021年6月9日
谢谢。这为我工作(MATLAB 2017b),它非常简单。让我们假设我们有8个数据集,我们想要绘制所有的数据集,但只想看到偶数数据集的图例。
x = 1 (100 1) * (1:8);情节(x); ylim ([0 9]);Hleg = legend ('show');hleg.String (1:2) = [];

登录发表评论。


阿卡什文德兰花
阿卡什文德兰花 2015年11月26日
为什么这个错误总是出现?
<<
>>
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2016年11月17日
不,在每一种情况下,z w c等是表达式中没有空格,[z w c…和[z, w, c,…]相同
表达式中的空格有时会触发解析,就好像有多个表达式一样。例如:
[1 2 * x]
考虑两个表达式,1和-2*x

登录发表评论。


路加福音马斯登
路加福音马斯登 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平均振幅”“活动”“火山的“爆炸”“位置”“东北”);
4评论
里克
里克 2021年8月11日
@Brent F 次要情节只是一个新的 对象,因此任何方法都可以工作。你使用的时候要小心 gca 或者当根本不提供手柄时,如最后一个 与用户交互将是您调用的目标。

登录发表评论。


胡安·卡洛斯·德卢纳
在“情节浏览器”中选择行并键入
集(get (get (gco,“注释”),“LegendInformation”),“IconDisplayStyle”“关闭”
2的评论
玛丽亚Sadki
玛丽亚Sadki 2021年11月29日
我也是,谢谢

登录发表评论。

标签

没有标签输入。

世界杯预选赛小组名单社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!世界杯预选赛小组名单

开始狩猎!

Baidu
map