如何用MATLAB繪制雷達圖(戴布拉圖、螂蛛網圖、玫瑰圖)


首先聲明,這是一篇轉載的文章。

一, 主程序命名為:radar_lee.m.

        為了繪制出兩條折線,編程如下:

    x=[0:pi/8:2*pi];
       y=[10,8.2,7.5,8.5,10,7.2,7.8,10,9,10,6.8,9.5,5,10,5.8,9,10];
      z=[10,8.3,9,10,10,7.5,7.5,6,9,7,7,6.7,2.3,10,10,9,10];
      polar(x,y,'b'),title('雷達圖示例-星星原創')

    hold on %兩折線重疊顯示
    polar(x,z,'m')

二, 折線成功顯示,但是問題也進一步顯現:MATLAB默認的極坐標的顯示格式是每隔30度顯示一條徑向線,並進行角度標注。如果不能自定義徑向線的角度和名稱標注,將不能借此表達雷達圖的 多元參數信息。

    為此,我修改了matlab的系統函數polar(極坐標繪制函數)。

    在matlab命令窗口鍵入:

    >> edit polar.m

        這樣就進入了polar函數。

    找到:

    % plot spokes 繪制徑向線
    th = (1:6)*2*pi/12;
       cst = cos(th); snt = sin(th);
      cs = [-cst; cst];
      sn = [-snt; snt];
      line(rmax*cs,rmax*sn,'linestyle',ls,'color',tc,'linewidth',1,...
      'handlevisibility','off','parent',cax)



     程序中 th 表示兩條徑向線以30度為間隔,只要對其進行修改即可自定義分配徑向線的個數與夾角。

  比如我的修改是 th = (1:8)*2*pi/16; %圓上分布16條徑向射線,間隔為22.5度。

  然后,要對程序中隨后出現的夾角參數進行相應修改(30改為22.5)。

三, 徑向線標注的修改

    我們不光需要修改徑向線的個數與夾角,還要修改其標注。將角度標注修改為雷達圖中的評價標准(比如:油耗,動力,。。。)。

    修改仍需要在polar.m中進行。

    % annotate spokes in degrees
       rt = 1.1*rmax;
       for i = 1:length(th)
       text(rt*cst(i),rt*snt(i),int2str(i*22.5),... %int2str(i*22.5)是關鍵
    'horizontalalignment','center',...
       'handlevisibility','off','parent',cax);

       自行定義字符向量對其進行替換即可。

四, 線的加寬

    主程序編寫之后,還需對細節進行修飾。比如:標題位置,標注大小,線的寬細。。。。。

    線寬修改示例:

     set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2);



五,示例

      分別編譯保存polar與主程序。

      運行主程序radar,繪圖如下


                                                



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com