如何更改 Matlab 极坐标图中的径向刻度标记?
How to change radial tick markers in Matlab polar plot?
我想在以下极坐标对数图中重新标记径向刻度标记:
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 个不同数量的同心圆,那该怎么做(例如,"origin" 处有 -40 dB 的 4 个细分。)
这是一种重命名径向刻度标签的方法。请注意,如果任何径向标记和 angular 刻度标记标签之间存在匹配,两者都将被替换并且 angular 标签将是错误的。但是 angular 刻度标签固定为 0、30、60、...、330,因此只要径向刻度标签不包含这些值,就可以了。
代码的作用是使用 findall
、trim 每个字符串前面的空格找到绘图中的所有文本,然后,对于 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 File Exchange 上可能有这样的功能。
我想在以下极坐标对数图中重新标记径向刻度标记:
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 个不同数量的同心圆,那该怎么做(例如,"origin" 处有 -40 dB 的 4 个细分。)
这是一种重命名径向刻度标签的方法。请注意,如果任何径向标记和 angular 刻度标记标签之间存在匹配,两者都将被替换并且 angular 标签将是错误的。但是 angular 刻度标签固定为 0、30、60、...、330,因此只要径向刻度标签不包含这些值,就可以了。
代码的作用是使用 findall
、trim 每个字符串前面的空格找到绘图中的所有文本,然后,对于 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 File Exchange 上可能有这样的功能。