matlab datatip,[matlab笔记]绘图时dataTip的设置.docx

[matlab笔记]绘图时dataTip的设置

[matlab笔记]绘图时dataTip的设置??2009-04-29 16:43:45|??分类:?Computer|字号?订阅用matlab(我用的版本是2009)绘图后,有时候需要显示某个数据据点的信息,这时候可以用工具栏上的Data Cursor工具。如下图所示选中数据点之后,会弹出一个Data Tip,Data Tip显示的就是当前被选中的数据点的基本信息,比如图中显示的是坐标值。现在就遇到一个问题了,如何自己定制这个Data Tip呢?特别是,我的数据有效数字太多时,默认情况下只能显示4位,如何让它显示的精度更高呢?matlab提供了解决方案,不是Option,也不是Preferences,而是脚本。我这里把matlab的m文件称作脚本。习惯了图形界面的人可能会觉得麻烦,但是我却觉得这是最自由的解决方案。下面以一个实例来演示操作过程:1、绘图x=rand(1000,1); y=rand(1000,1); plot(x,y,'*');这样,就在[0,1]X[0,1]这样一个矩形内绘制了1000*1000个点。绘图的时候要指定一个点的图例,不然默认情况下是不画点的,这样也就没法点选了。2、选中Data Cursor工具,这样,鼠标放到图中间会变成一个十字,这时候点击一个数据点会弹出一个Data Tip框。可以看到显示只有4位有效数字。3、右键菜单,里面有两项"Edit Text Update Function"和"Select Text Update Function"。分别表示编辑配置文件,选择配置文件(配置文件指的还是m文件)。在未编辑之前,当前图用的是默认配置文件。编辑之后,需要保存到一个位置,新保存的文件只对当前图有效。下次如果还想使用这个配置文件,就要用到"Select Text Update Function"了。4、点选"Edit Text Update Function",出现一个m文件编辑器。内容如下:function output_txt = myfunction(obj,event_obj)% Display the position of the data cursor% obj????????? Currently not used (empty)% event_obj??? Handle to event object% output_txt?? Data cursor text string (string or cell array of strings).pos = get(event_obj,'Position');output_txt = {['X: ',num2str(pos(1),4)],...??? ['Y: ',num2str(pos(2),4)]};% If there is a Z-coordinate in the position, display it as wellif length(pos) > 2??? output_txt{end+1} = ['Z: ',num2str(pos(3),4)];end眼尖的人应该一眼就看到了几个"4",没错,正是它们限制了显示精度,改成更大的数就行了。这几行代码的意思应该很明显了。第一行是函数原型,以%开头的是注释,pos是变量,output_txt是返回值。二维图分两行显示X,Y坐标,如果是三维,则还会显示Z坐标。5、保存为m文件。注意保存的文件一定要带有.m后缀,不然matlab识别不了,从而Data Tip会显示为Error in custom datatip string function。这个错误说函数返回错误,实际上就是不能识别。6、保存完了,就算完事了。以后可以直接改那个已经保存的文件,然后绘图后,选择这个文件。再次提醒,每次绘图时使用的都是默认配置,想要特定的效果,要么重新写,要么选择指定配置文件。7、关于这个配置文件本身,还有许多值得探讨的地方。我这个例子只能更改显示精度,实际上,它还有许多可以自由定制的地方。比如,可以显示点的序号,即第几个点。在配置文件末尾加上一句:output_txt{end+1} = ['index:', num2str(event_obj.DataIndex)];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值