matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文

matlab 中annotation的操作可以象windows的“画图”一样很方便的对图像进行标注,但如果所绘的图需要修改,其标注也需要再手工重复操作一次,所以在这种情况下用脚本进行annotation标注就省时省力了。annotation是基于figure坐标的,而标注往往是基于axes坐标的,简单的说前者是框后者是框中的画,matlab好像没有将axes坐标与annotation直接联系起来,所以将axes坐标转变为figure坐标是annotation标注的核心。

1. plot 函数所绘图形的annotation标注

用plot绘制图形后,再用annotation('textarrow',xf,yf)等标注,其中xf和yf是由参考[1]中的dsxy2figxy( )函数从axes坐标转换得到的,图1给出了一个例子,分别对图1中axes坐标的(0.7, 48)、(0.8, 48)和(1.5,38)进行标注。

7fd1a18d0c8d071dc6ba9eb9a6eaf0f8.gif

图1 在plot绘图中的标注

2.polar 函数所绘图形的annotation标注

用polar绘制图形后如果还用[1]中dsxy2figxy( )函数进行转换则一般得不到正确的figure坐标。这里提供一个初略的方法。先用polar绘图,然后设置figure为正方形,如set(gcf,'position',[100,100,600,600]),正方形使figure的normalized坐标与polar绘的圆在x和y轴的比例保持一致,用axis(gca),get(gca,'units')和get(gca,'position')得到axes坐标范围、单位及其在figure坐标中的位置等信息,这些信息只作参考, 接着可以通过axis([-2.85,2.85,-2.85,2.85])设置坐标范围,用set(gca,'Position',[0.1,0.1,0.8,0.8])设置其位置,之后就可以进行坐标转换了,这里通过一个简单的转换函数pxy2fxy( )实现,代码如图3所示。图2给出了polar绘图用以上方法进行的标注。

efb940ef1f7022664a6d62f7bd991efa.gif

图2 polar绘图中的标注

bd86da9ce95116cac892400edb87fab5.gif

图3  转换代码

[1]matlab help->MATLAB->Graphics->Annotating Graphs->Positioning Annotations in Data Space

转载本文请联系原作者获取授权,同时请注明本文来自夏靖科学网博客。

链接地址:http://blog.sciencenet.cn/blog-43412-47815.html

上一篇:simple circular antenna array

下一篇:linewidth of matlab exported file

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值