【问题标题】:How to change radial tick markers in Matlab polar plot?如何更改 Matlab 极坐标图中的径向刻度标记?
【发布时间】:2015-04-14 02:03:16
【问题描述】:

我想在以下极坐标图中重新标记径向刻度标记:

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 个不同,该怎么做(例如,4 个细分,“原点”处为 -40 dB。)

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    这是一种重命名径向刻度标签的方法。请注意,如果任何径向和角度刻度标记标签之间存在匹配,则两者都将被替换并且角度标签将是错误的。但是角度刻度标签固定为 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 File Exchange 上可能有这样的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 2015-05-05
      • 1970-01-01
      • 2017-08-28
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多