如何在Matlab极坐标polar绘图上增加刻度单位
一直以来,想在极坐标上面增加刻度,不知道该如何更改,经常是手动加入,费时费力。今天突然想起来为何不能通过修改Matlab的已知源代码,去更改呢?百度了之后,找到了以下的文章:
先不看文章,先来看Matlab默认绘制出来的效果图:
命令如下:
t = 0 : .01 : 2 * pi;
polar(t, sin(2 * t) .* cos(2 * t), '--r');
那么问题来了,我想在0到360上面增加度的标记,即“°”,在0.1,0.2……上面增加微米标记,即μm。那么我们查找Maltab的代码。在命令窗口敲出polar,然后双击选中,右键选择打开该命令。
打开后,找到第153(int2str(i*30))和161(loc)行,即为我们想要增加的度的标示部分:
更改为如下程序:
第二部分的修改,找到第136行:
修改为:
大功告成。注意,我们尽量不去修改Matlab原始的代码,所以我们这里将整个修改后的程序另存为:Mypolar.m。下面我们看一下修改后的绘图效果:
命令如下:
t = 0 : .01 : 2 * pi;
Mypolar(t, sin(2 * t) .* cos(2 * t), '--r');
同理,我们还可以用类似的方法修改相应代码,得到我们想要的效果。
最后,还是那句话:多看Matlab Help!多看Matlab
Help!多看Matlab
Help!
参考:
matlab极坐标图改变坐标系标注
作者
这两个命令的角度是定死的,没有提供任何接口去修改。你一定要改,就只能改这两个命令的源代码了
打开polar.m后可以找到下面这段语句% 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改成别的值就可以绘制不同的角度了,比如改成th
= (1:4)*2*pi/8;就是45度的分割线了。当然下面还要继续改显示的度数% annotate spokes in degrees
rt =
1.1*rmax;
for i =
1:length(th)
text(rt*cst(i),rt*snt(i),int2str(i*30),...
'horizontalalignment','center'