(转)如何用MATLAB绘制雷达图
(2017-05-30 17:21:44)分类: 编程之旅 |
转自:
http://blog.csdn.net/aiieno0/article/details/24765783
一、为了绘制出两条折线,编程如下:
二,折线成功显示,但是问题也进一步显现: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);
三, 径向线标注的修改
四, 线的加宽
前一篇:p文件