加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

(转)如何用MATLAB绘制雷达图

(2017-05-30 17:21:44)
分类: 编程之旅

转自:

http://blog.csdn.net/aiieno0/article/details/24765783

 

 

一、为了绘制出两条折线,编程如下: 

      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); 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有