前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab绘图中被隐藏的Marker, 99.99%的小伙伴都不知道

matlab绘图中被隐藏的Marker, 99.99%的小伙伴都不知道

作者头像
巴山学长
发布2023-03-17 13:04:43
2.1K1
发布2023-03-17 13:04:43
举报
文章被收录于专栏:巴山学长巴山学长
当你看见这个标题时是不是觉得是噱头呢?不管是不是第一次见到今天推文所讲内容,都值得一看。

相信大家对plot函数并不陌生,在绘制多条数据曲线时,除了用不同颜色区分外,往往会在相应的数据点处同时加上不同的marker。通过查询plot对应的帮助文档,不难发现,matlab提供了13种可选marker,相对来说算是少的了,而且marker是plot的私有属性,不能自定义修改。如果你要是相信plot只有这13种marker可以使用,那你就被plot的帮助文档给忽悠了。其实,在matlab顶级图像句柄的隐藏属性中,可以自定义并启用一些内部对象的额外功能。

正因为此,才使得启用隐藏marker成为可能。plot函数所属的line句柄有一个名叫MarkerHandle的隐藏属性,该属性具有极其强大丰富的功能,这里就不展开了,只用尝试与marker相关的属性设置。

在命令窗口中执行set(hLine, 'Marker')hLineplot对应的句柄,可以获得如下14种结果,前13种为plot帮助文档中给出的可用marker:

代码语言:javascript
复制
{'+'} {'o'} {'*'} {'.'} {'x'} {'square'} {'diamond'} {'v'} {'^'} {'>'} {'<'} {'pentagram'} {'hexagram'} {'none'}

在命令窗口中执行set(hLine.MarkerHandle, 'Style')hLineplot对应的句柄,可以获得如下16种结果,前15种为plot帮助文档中给出的可用marker,对比上面的结果可以看出,多出了'hbar''vbar'两种类型,这就是被隐藏了的marker。

代码语言:javascript
复制
{'plus'} {'circle'} {'asterisk'} {'point'} {'x'} {'square'} {'diamond'} {'downtriangle'} {'triangle'} {'righttriangle'} {'lefttriangle'} {'pentagram'} {'hexagram'} {'vbar'} {'hbar'} {'none'}

如果使用'hbar''vbar'呢?请看下方的示例:

代码语言:javascript
复制
clc;clear;close all;
figure('color','w');
x = 0:pi/30:2*pi;
y = cos(x).*sin(exp(x));
% 获取plot的句柄
hLine = plot(x,y,'o-','LineWidth',1.5);
drawnow;
% 设置marker颜色
hLine.MarkerEdgeColor = 'r';
% set(hLine, 'Marker')% top-level marker styles
% set(hLine.MarkerHandle, 'Style') % low-level marker styles
pause(0.005);
% 设置隐藏marker类型,'hbar'或'vbar'
hLine.MarkerHandle.Style = 'hbar';
% 设置bar的长度
hLine.MarkerHandle.Size = 8;
% 设置bar的宽度
hLine.MarkerHandle.LineWidth = 3;
title('横条(vbar) marker演示图');

效果图

怎么样?效果还不赖吧!关于MarkerHandle属性更多功能应用,且听下回分解。

参考资料:

[1] http://undocumentedmatlab.com/articles/undocumented-plot-marker-types

[2] https://www.mathworks.com/help/matlab/ref/plot.html

封面图片:由 stux 在Pixabay上发布

如需转载,请在公众号中回复“转载”获取授权,未经授权擅自搬运抄袭的,必将追究其责任!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 巴山学长 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档