我想在下面的极坐标图中重新标记径向刻度标记:
f = figure ;
t = 0:0.01: pi/2 ;
polar(t, 10 * log10(cos(t))/(50) + 1)
从1,0.8,0.6,0.4,0.2到0,-10,-20,-30,-40(即径向dB刻度)。
尝试Fixing the Radial Axis on MATLAB Polar Plots中的一些方法,我能够重新标记标记,只要我的刻度标记是正面的并且正在增加。
我根据How to remove Rho labels from Matlab polar plot?
尝试了以下内容rho_labels = {'1' '0.8' '0.6' '0.4' '0.2'};
rho_labels2 = {'0' '-10' '-20' '-30' '-40'};
for r=1:length(rho_labels)
ff = findall(f, 'string', rho_labels{r}) ;
ff = rho_labels2{r} ;
end
但它也没有工作(似乎什么都不做,所以我怀疑我在没有处理的查找结果的副本上操作)。
如何调整这些刻度标记?另外,如果我想要不同数量的同心圆而不是5,那么怎么做呢(例如,在&#34处有4个细分-40 dB;起源"。)
答案 0 :(得分:0)
这是一种重命名径向刻度标签的方法。请注意,如果任何径向和角度刻度标记之间存在匹配,则两者都将被替换,角度标签将出错。但角度刻度标签固定为0,30,60,...,330,因此只要径向刻度标签不包含这些值,您应该没问题。
代码的作用是使用findall
找到图中的所有文本,修剪每个字符串前面的空格,然后,对于rho_labels
中的每个条目,设置相应的字符串条目带有该标识符的刻度标签到rho_labels2
中的相应条目。
f = figure ;
t = 0:0.01: pi/2 ;
polar(t, 10 * log10(cos(t))/(50) + 1)
rho_labels = {'1' '0.8' '0.6' '0.4' '0.2'};
rho_labels2 = {'0' '-10' '-20' '-30' '-40'};
ff = findall(f,'type','text');
t=strtrim(get(ff,'String'));
for r=1:length(rho_labels)
set(ff(strcmp(t,rho_labels{r})),'String',rho_labels2{r})
end
要修改响铃次数,我认为想想比修改polar.m
和创建自己的自定义polarMOD.m
功能更好的事情。如果这样做,您也可以做径向标签。实际上,MathWorks文件交换可能会有这样的功能。