代码之家  ›  专栏  ›  技术社区  ›  Adam Holmberg

在Matlab极坐标图上固定径向轴

  •  15
  • Adam Holmberg  · 技术社区  · 16 年前

    我在matlab中使用极坐标图(polar(theta,rho))。

    有没有一个简单的方法来固定径向轴的范围,比如说,1.5?

    我在寻找类似于xlim,ylim命令的笛卡尔轴。文档中还没有找到任何内容。

    4 回复  |  直到 16 年前
        1
  •  6
  •   genesis    13 年前

    我就是这样做的。

    matlab极坐标图(如果您查看可用的句柄图形选项)没有类似xlim或ylim的内容。但是,我意识到绘制的第一件事设置了范围,所以我可以在一个[-1 1]图上绘制半径范围为[-.5.5]的函数,如下所示:

    theta  = linspace(0,2*pi,100);
    r      = sin(2*theta) .* cos(2*theta);
    r_max  = 1;
    h_fake = polar(theta,r_max*ones(size(theta)));
    hold on;
    h      = polar(theta, r);
    set(h_fake, 'Visible', 'Off');
    

    这看起来不是很好,希望有更好的方法来做,但它是有效的。

        2
  •  8
  •   Paul    15 年前

    这对我有用…我想半径范围是30,所以我先画了这个

    polar(0,30,'-k')
    hold on
    

    然后画出我真正感兴趣的东西。第一个绘制点隐藏在网格标记后面。一定要包括

    hold off
    

    在最后的绘图命令之后。

        3
  •  6
  •   H.Muster    12 年前

    简单的解决方案是制作一个假图形并将其颜色设置为白色。

    fake=100;
    polar(0,fake,'w');
    hold on;
    
    real=10;
    polar(0,real,'w');
    
        4
  •  4
  •   CalPolyAero    15 年前

    如果有人看到这个,这是 这个 解决方案:

    AS Scottie T 新手 指出,matlab基本上使用polar函数作为标准图的接口,但在后台有大量的格式设置,使其看起来极性。看看极坐标图的xlim和ylim属性的值,你会发现它们实际上是笛卡尔坐标系下,图的x和y极限。因此,要设置半径限制,请使用xlim和ylim或axis,并对所设置的值保持智能:

    rlim = 10;
    axis([-1 1 -1 1]*rlim);
    

    …就这些了。马特拉宾:你好!