matlab 中annotation的操作可以象windows的“畫圖”一樣很方便的對圖像進行標注,但如果所繪的圖需要修改,其標注也需要再手工重復操作一次,所以在這種情況下用腳本進行annotation標注就省時省力了。annotation是基于figure坐標的,而標注往往是基于axes坐標的,簡單的說前者是框后者是框中的畫,matlab好像沒有將axes坐標與annotation直接聯系起來,所以將axes坐標轉變為figure坐標是annotation標注的核心。
1. plot 函數所繪圖形的annotation標注
matlab untitled?用plot繪制圖形后,再用annotation('textarrow',xf,yf)等標注,其中xf和yf是由參考[1]中的dsxy2figxy( )函數從axes坐標轉換得到的,圖1給出了一個例子,分別對圖1中axes坐標的(0.7, 48)、(0.8, 48)和(1.5,38)進行標注。
圖1 在plot繪圖中的標注
2.polar 函數所繪圖形的annotation標注
matlab documentation。用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繪圖用以上方法進行的標注。
圖2 polar繪圖中的標注
圖3? 轉換代碼
matlab graph。[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
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态