笛卡尔散点图上的极坐标网格线

时间:2012-01-26 08:58:43

标签: matlab

我有一个脚本来创建基于另一个脚本生成的x-y数据(离散数据点,不连续)的散点图(使用gscatter)。由于这些数据点实际上是圆形空间中某些对象的位置,因此添加极坐标网格线将使图形更有意义。

有没有人知道如何在笛卡尔散点图上显示极坐标网格线,或者我最好使用极坐标图?

2 个答案:

答案 0 :(得分:2)

您始终可以使用pol2cart函数生成极坐标网格线。 例如:

function DrawGridLines
    x = randn(10);
    y = randn(10);
    figure;scatter(x(:),y(:));
    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
end

enter image description here

答案 1 :(得分:2)

我曾经制作过这个剧本,用于在常规情节的基础上绘制极坐标系。也许它对你有用。它基于this脚本,但简化为仅绘制坐标系而没有数据。如果这不是您想要的,请查看链接的脚本,也许它也可以提供帮助。

务必根据需要调整半径!我通常会禁用轴,但如果您需要另外看,则由您自行解决:)

R=6000; %radius
S=10;   %num circ.lines
N=10;   %num ang.lines

sect_width=2*pi/N;    
offset_angle=0:sect_width:2*pi-sect_width;

%------------------
r=linspace(0,R,S+1);
w=0:.01:2*pi;

clf %remove if needed

hold on
axis equal
for n=2:length(r)

    plot(real(r(n)*exp(j*w)),imag(r(n)*exp(j*w)),'k--')

end


for n=1:length(offset_angle)

    plot(real([0 R]*exp(j*offset_angle(n))),imag([0 R]*exp(j*offset_angle(n))),'k-')

end
%------------------

Result from script