【问题标题】:Showing angles around plot in matlab / octave在matlab / octave中显示绘图周围的角度
【发布时间】:2014-10-17 15:27:23
【问题描述】:

我可以使用 pol2cart 创建一个绘图,但我怎样才能让角度显示在线条的末端?见以下代码:

hold on ;
    for angle =  0:20:(360-20)
        [x1,y1] = pol2cart(  angle / 180 * pi , [0 2]);
        plot(x1,y1,'r')
    end

    for rho  =  0:0.1:2
        [x1,y1] = pol2cart(  0:0.01:2*pi , rho);
        plot(x1,y1,'b')
    end
    axis equal

我正在尝试让角度增量显示在周围,请参见下图。 请注意,我没有画出所有编号的角度,只是第一对显示我正在尝试做的事情

PS:我使用的是 octave 3.8.1,它尝试使用与 matlab 相同的语言语法

【问题讨论】:

标签: matlab plot octave


【解决方案1】:

你可以做类似的事情

step = 20;

r= 2.2;
for idx = 0:step:360-step
    text(r*cos(pi*idx/180),r*sin(pi*idx/180),num2str(idx), ...
        'HorizontalAlignment','center', 'color',[1 .5 0])
end

为了更合适,包括

axis(1.05*[-r r -r r])
axis equal

(这适用于MATLAB,我不知道Octave中的语法是否完全相同。)

【讨论】:

    【解决方案2】:

    这是信息和动画情节

    %polar_chart_with_angles and there opposites
    clear all, clc, clf
    %find how many angles to make one full cycleremeber to divide by two if using stereo signal 180 out of phase
    incr=72;
    angle_wanted=incr;
    
    n = lcm(360, 180 - angle_wanted) / (180 - angle_wanted)
    angle_div=[0:incr:incr*n] %angle divsions
    angle_div_mod=mod(angle_div,360) %angle divsions mod into 360
    angle_div_mod_opp=mod(angle_div+180,360) %oppsite angle divsions mod into 360
    
    %for circles
    r= 2.2;
    for rho  =  0:0.1:2
        [x1,y1] = pol2cart(  0:0.01:2*pi , rho);
        plot(x1,y1,'b')
        axis(1.10*[-r r -r r])
        axis equal
        hold on;
    end
    
    %for orig angles
    
    for ii=1:n
        angle=angle_div(ii)
        [x1,y1] = pol2cart(  angle / 180 * pi , [0 2]);
        plot(x1,y1,'r')
        hold on;
        title_h=title(['Norig= ', int2str(ii)]);
        %title_h = title('This is the title');
        set(title_h, 'Position', [0.5, 0.02],'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'left')
        %%for creating orig angles
        idx=angle_div_mod(ii);
        text(r*cos(pi*idx/180),r*sin(pi*idx/180),num2str(idx), 'HorizontalAlignment','center', 'color',[1 .5 0])
        pause (.1)
    end
    
    %for oppsite angles
    for ii=1:n
        angle_opp=angle_div_mod_opp(ii)
        [x1,y1] = pol2cart(  angle_opp/ 180 * pi , [0 2]);
        plot(x1,y1,'g')
        hold on;
        title(['Nopp= ', int2str(ii)]);
        %for creating oppsite angles
        idx=angle_div_mod_opp(ii);
        text(r*cos(pi*idx/180),r*sin(pi*idx/180),num2str(idx), 'HorizontalAlignment','center', 'color',[.5 .7 .7])
        pause (.1)
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-21
      • 2012-08-24
      • 1970-01-01
      • 2013-05-10
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多