如何从MATLAB中的极坐标图中删除参数标签

时间:2013-04-29 16:00:35

标签: matlab

有没有人知道在MATLAB的极坐标图中从参数轴中删除标签的简单方法?我的数字很小,我必须放大才能看到它们,但是当我这样做时,来自一个子图的参数标签会妨碍其他子图。

同样,如果有人知道通过在径向方向重新调整轴来解决这个问题的方法,或任何解决方案,那么我将非常感激。对于平均时间,我将不得不在Latex中修剪和重新调整大小。


我在这里尝试了这个方法

How to remove Rho labels from Matlab polar plot?

但它不起作用。


这是一些示例代码

    subplot(1,3,1,'align');
    r = 10;
       polar(t,abs((r.*exp(t.*1i) - (1+1i)).^2));

      set(gca, 'fontsize', 20)
     set(findall(gca, 'String', '0'),'String', ' ') %remove theta labels
     hold on

1 个答案:

答案 0 :(得分:4)

给出以下示例输入:

t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),'--r')

enter image description here

您可以通过仅保留合法标签来删除垂直标签(沿rho)。

% Find all handles to text labels
h     = findall(gca,'type','text');

% Define what to keep
legit = {'0','30','60','90','120','150','180','210','240','270','300','330','360',''};

% Take the others and set them to empty string
idx   = ~ismember(get(h,'string'),legit);
set(h(idx),'string','')

编辑处理评论

一种方法是简单地设置为空''个字符legit定义的标记,即删除~附近的ismember。但是,这种方法并不强大,因为它会删除所有匹配的标签。假设您有一些其他标签120,那么它也将被移除。

解决此问题的一种方法是通过在径向注释中添加polar()来修改第155行和第162行的'Tag'

'HandleVisibility', 'off', 'Parent', cax,'Tag','spoke');

然后,保存已编辑的功能,绘图,检索这些文本标签,并设置为空字符串:

h = findall(gca,'Type','text','-and','Tag','spoke');
set(h,'string','')